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 側から 2 回実行されます。たとえば、「winter」タグを購読し、誰かがメディアを公開してそのタグを使用してタグ付けすると、instagram は購読中に指定したコールバック ファイルに 2 回通知を送信します (両方の呼び出しは数秒以内に実行されます)。Instagramがコールバックにリクエストを2回送信するのはなぜですか? 誰かが同様の問題を抱えていましたか?

4

1 に答える 1

8

デバッグと調査の後、コールバック ファイルが十分に速く実行されない場合、コールが instagram から 2 回送信されることがわかりました。

ドキュメントに基づく:

また、2 秒のタイムアウト内に POST を確認する必要があります。受信した情報をさらに処理する必要がある場合は、非同期タスクで行うことができます。

最初のリクエストで 2 秒以内に応答がない場合は、2 番目のリクエストを送信します。

最後に、「スリープ」のみが含まれる空の callback.php ファイルがあり、毎回2回呼び出されました。

于 2014-12-10T02:17:48.830 に答える