Instagram Теги обновления в реальном времени — обратный вызов вызывается дважды?

Я использую обновления в режиме реального времени для тега, чтобы получать уведомления, когда кто-то помечает медиа с определенным тегом. Подписка работает нормально, и я могу проверить подписку напрямую, используя
https://api.instagram.com/v1/subscriptions?client_secret={ЦЛ}&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 отправлять запрос дважды на обратный звонок? У кого-нибудь была похожая проблема?

9

Решение

После отладки и расследования я обнаружил, что вызов отправляется из Instagram дважды, если файл обратного вызова не выполняется достаточно быстро.

На основе документация:

Кроме того, вы должны подтвердить POST в течение 2 секунд тайм-аута — если
вам нужно больше обрабатывать полученную информацию, вы можете сделать
так в асинхронной задаче.

Они отправят второй запрос, если не получат ответ на первый запрос в течение 2 секунд.

В конце у меня был пустой файл callback.php, внутри которого был только «сон», и каждый раз он вызывался дважды.

8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]