我正在使用Instagram实时更新标记,以便在有人标记带有特定标记的媒体时收到通知。订阅工作正常,我可以直接使用检查订阅 https://api.instagram.com/v1/subscriptions?client_secret= {CS}&安培; CLIENT_ID = {CID}
在回调中我有类似
的内容if (isset ($_GET['hub_challenge'])){
echo $_GET['hub_challenge'];
}
else{
$my_string = file_get_contents('php://input');
$sub_update = json_decode($my_string);
//do the rest of the things with data we fetched
}
}
但是,这个回调是从Instagram方面执行两次的。例如,如果我订阅"冬天"标签,如果有人发布媒体并使用该标签对其进行标记,Instagram将向订阅期间指定的回调文件发送两次通知(两次调用都在几秒内执行)。为什么Instagram会向回调发送两次请求?有人有类似的问题吗?
答案 0 :(得分:8)
经过调试和调查后,我发现如果回调文件执行速度不够快,则会从Instagram发送两次电话。
此外,您应该在2秒内超时确认POST - 如果 您需要对收到的信息进行更多处理,您可以这样做 所以在异步任务中。
如果他们在2秒内没有收到第一次请求的回复,他们将发送第二个请求。
最后,我有一个空白的callback.php文件只有" sleep"在它里面,它每次被召唤两次。