2014-12-09 4 views
8

Korzystam z aktualizacji instagramowych w czasie rzeczywistym dla tagu, aby otrzymywać powiadomienia, gdy ktoś oznaczy multimedia z konkretnym tagiem. Subskrypcja działa dobrze, i jestem w stanie sprawdzić subskrypcji bezpośrednio przy użyciu https://api.instagram.com/v1/subscriptions?client_secret= {CS} & client_id = {CID}Instagram Tag aktualizacji w czasie rzeczywistym - wywołanie callback dwukrotnie?

ciągu zwrotnego Mam coś jak

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 
} 

}

Ale to zwrotna jest wykonany dwukrotnie od strony instagram. Na przykład, jeśli zapiszę się do tagu "zima" i jeśli ktoś opublikuje media i oznaczy go tagiem, instagram wyśle ​​powiadomienie dwa razy do pliku wywołania zwrotnego i określonego podczas subskrypcji (oba wywołania są wykonywane w ciągu kilku sekund). Dlaczego instagram wysyła żądanie dwukrotnie do wywołania zwrotnego? Ktoś miał podobny problem?

Odpowiedz

7

Po debugowaniu i dochodzeniu stwierdzono, że wywołanie jest wysyłane z instagram dwa razy, jeśli plik wywołania zwrotnego nie jest wykonywany wystarczająco szybko.

podstawie documentation:

Ponadto, należy uznać stanowisko w ramach 2 drugiego limitu czasu - jeśli trzeba zrobić więcej przetwarzanie otrzymanych informacji, można zrobić więc w asynchronicznym zadanie.

Będą wysyłać drugie żądanie w przypadku, gdy nie otrzymają odpowiedzi na pierwsze żądanie w ciągu 2 sekund.

Na końcu miałem pusty plik callback.php z tylko "uśpionym" wewnątrz i jego wywołaniem dwa razy za każdym razem.

+1

Podanie tego cytatu prawdopodobnie uratowało mój dzień. W obecnej wersji dokumentacji brakuje jej i nie jest jasne, dlaczego powiadomienia są wysyłane dwa razy. Idę sprawdzić. – Andreyco

+0

Rzeczywiście, tak to działa! – Andreyco