【问题标题】:Instagram Realtime API tag subscriptions die after 30 callbacks?Instagram 实时 API 标签订阅在 30 次回调后死亡?
【发布时间】:2013-12-07 20:30:01
【问题描述】:

我遇到了一个问题,我们正在创建的标签订阅只能持续大约 30 次回调

我们正在使用 PHP 和 cURL 与 Realtime API 对话

我们的 callback.php 只是将收到的 POST 请求记录到一个文件中,这样我们就可以跟踪它被调用了多少次。大约 30 次调用后,它停止跟踪,当我们向 API 查询订阅列表时,订阅 ID 和 TAG 不再被跟踪......但是,我们没有收到错误返回,只是:

{"meta":{"code":200},"data":[]}

我们的 subscribe.php 看起来像这样:

<?php
    // client ids and secrets edited for posting
    $client_id = 'XXXXXXXXXXXXXXXXXXX';
    $client_secret = 'XXXXXXXXXXXXXXXXXXXXX';
    $object = 'tag';
    $object_id = $_GET['tag'];
    $aspect = 'media';
    $verify_token='';
    $callback_url = 'http://vslve.com/app/callback.php';

    $attachment =  array(
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'object' => $object,
        'object_id' => $object_id,
        'aspect' => $aspect,
        'verify_token' => $verify_token,
        'callback_url'=>$callback_url
    );

    $url = "https://api.instagram.com/v1/subscriptions/";

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output
    $result = curl_exec($ch);
    curl_close ($ch);


    $myString = $result;
    $jsonArray = json_decode($myString);

    foreach($jsonArray as $value){
        $sub_id = $value->id;
    }

    $content = " ".$sub_id." ".$object_id."\r\n";
    file_put_contents('subscribe.log', $content, FILE_APPEND);

    print_r($result);
?>

还有我们的callback.php

<?php
    $challenge = $_GET['hub_challenge'];

    if ($challenge) {
        echo $challenge;
    }else{
        sleep(2);

        $myString = file_get_contents('php://input');
        $jsonArray = json_decode($myString);

        foreach($jsonArray as $value){
            $sub_id = $value->subscription_id;
            $tag = $value->object_id;

            $content = " ".$sub_id." ".$tag." ".$url."\r\n";
            file_put_contents('activity.log', $content, FILE_APPEND);
        }// end foreach
    }// end if
?>

我们是否以某种方式超出了速率限制?关于我们的订阅为何不断消失的任何帮助都将是极好的。

【问题讨论】:

  • 你解决了这个问题还是它仍然打开?我在 API 文档中读到,您需要在 2 秒内响应实时回调。我猜如果你不这样做,Instagrams 服务器会在一段时间后停止给你打电话。

标签: php tags instagram subscription


【解决方案1】:

对于给定的 client_id,似乎有 30 个real-time subscriptions 的限制。

我希望它会记录在他们的limits 部分,但我还没有找到它。有关它的一些讨论,请参阅this post

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多