我遇到了一个问题,我们创建的标签订阅只持续大约30次回调
我们使用PHP和cURL与实时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);
?>
以及我们的回调.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
?>
我们是不是以某种方式超过了利率限制?任何关于我们的订阅不断消失的原因的帮助都将是极好的。
对于给定的client_id,似乎有30个实时订阅的限制。
我希望它能被记录在他们的限制部分,但我还没有找到。请参阅这篇文章,了解有关它的一些讨论。