9

我正在使用 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 端执行了两次。例如,如果我订阅了“winter”标签,并且如果有人发布媒体并使用该标签对其进行标记,instagram 将向我在订阅期间指定的回调文件发送两次通知(两个调用都在几秒钟内执行)。为什么 Instagram 向回调发送两次请求?有人有类似的问题吗?

4

1 回答 1

8

经过调试和调查,我发现如果回调文件执行速度不够快,则会从 instagram 发送两次调用。

根据文档

此外,您应该在 2 秒超时内确认 POST - 如果您需要对接收到的信息进行更多处理,您可以在异步任务中执行此操作。

如果他们在 2 秒内没有收到第一个请求的响应,他们将发送第二个请求。

最后,我有一个空白的 callback.php 文件,里面只有“睡眠”,每次调用两次。

于 2014-12-10T02:17:48.830 回答