Facebook Messenger Bot: не получает POST-запрос от FB

Происходит странная вещь, я зарегистрировал свой веб-хук и все настроил, но теперь я больше не получаю POST-запросы, когда разговариваю со своим ботом. FB отправляет мне GET-запросы на веб-хук только тогда, когда я отправляю сообщение.

Кто-нибудь знает, в чем может быть проблема и как я могу искать решение?

Заранее спасибо!


person meandeveloper111    schedule 14.03.2017    source источник
comment
«FB отправляет мне GET-запросы к вебхуку только тогда, когда я отправляю сообщение» — я очень в этом сомневаюсь. Прежде всего, проверьте, правильно ли зарегистрирован ваш вебхук все еще — он может быть отключен, если ваш бот какое-то время не отправляет правильные ответы. Если он был отключен, то, возможно, Facebook снова отправляет вам исходные данные проверки (и это действительно произошло бы через GET). Если это не так, то я предлагаю вам в первую очередь проверить, что получает ваш сервер, через соответствующие файлы журнала, и как он отвечает (например, может быть неправильное перенаправление, которое может вызвать это, ...)   -  person CBroe    schedule 14.03.2017
comment
Хорошо, спасибо, я проверю это. Единственное, что я получаю от FB, это запрос GET без параметров.. по крайней мере, я ожидал бы, что параметры проверки webhook.   -  person meandeveloper111    schedule 14.03.2017
comment
Вы когда-нибудь выясняли, в чем проблема? У меня такая же проблема. Спасибо   -  person sf89    schedule 23.10.2017
comment
К сожалению, я не могу вспомнить, что решило проблему :/   -  person meandeveloper111    schedule 31.10.2017


Ответы (2)


Повторно авторизуйте свою страницу.

curl -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<ACCESS_TOKEN>
person Bcf Ant    schedule 14.03.2017
comment
Спасибо за идею. На данный момент запрос приводит к OAuth "Facebook Platform" "insufficient_scope" "(#200) Access to this data is temporarily disabled for non-active accounts due to changes we are making to the Facebook Platform", что как-то связано с изменениями в политиках FB, так что для меня это имеет смысл. Приходится использовать подход «Попробуй позже» - person Galya; 26.03.2018
comment
Большое спасибо. Это сэкономило мне часы :) - person Siva; 05.01.2019
comment
Что это делает? - person Rohit Nair; 18.06.2019

У меня была та же проблема, и я провел много часов, стуча головой о стену, прежде чем нашел это: yii2 Сообщение вебхука пусто

Не уверен, что это та же проблема, что и у OP, но я думаю, что в любом случае полезно оставить ее здесь: хук вызывался с помощью POST, а не get, и данные отправлялись, но PHP не получает их на $_POST , так что это выглядело как GET (потому что Yii::$app->request->post() возвращает false). Но затем я зарегистрировал $_SERVER, и на самом деле это был запрос POST, за исключением того, что $_POST был пуст. Затем я нашел этот ответ

Чтобы получить данные, которые facebook отправляет на PHP, вам нужно либо использовать

$data = file_get_contents("php://input")

или, если вы используете фреймворк Yii:

$data = json_decode(Yii::$app->request->getRawBody());
person diogo.abdalla    schedule 02.10.2019