Я создавал бота Facebook Messenger, и у меня возникли проблемы с получением сообщений от Messenger на веб-перехватчике на моем сервере. Я работал с API отправки и Webhooks в течение нескольких недель, и до сегодняшнего дня у меня не было проблем с отправкой сообщений пользователю туда и обратно. Я могу проверить веб-перехватчик из консоли разработчика Facebook, и я вижу, что проверка проходит при вызове GET моего маршрута /webhook
. Однако, когда я отправляю своему боту сообщение (который должен отправить сообщение на /webhook
) из моей личной учетной записи, я не вижу, чтобы какие-либо данные сообщения пересылались на мой сервер. Маршрут никогда не проходит. Страница, на которую я отправляю, подписана на приложение в консоли разработчика Facebook. Странно то, что я могу вручную нажать /webhook
с сообщением, используя curl:
curl -i -X POST -H 'Content-Type: application/json' -d
'{"object":"page","entry":
[{"id":43674671559,"time":1460620433256,"messaging":[{"sender":
{"id":MY_ACTUAL_FACEBOOK_USER_ID},"recipient":
{"id":MY_PAGE_ID},"timestamp":1460620433123,"message":{"mid":"mid.1460620432888:f8e3412003d2d1cd93","seq":12604,"text":"Testing
Chat Bot .."}}]}]}' "https://XXXXX.ngrok.io/webhook"
Я использую ngrok для переадресации звонков на мой локальный хост. Приведенная выше команда curl
работает нормально, то есть я могу видеть сообщение, доставленное на мой сервер по адресу /webhook
. На мой взгляд, это говорит о том, что проблема исходит от Facebook, а это значит, что я не могу это контролировать. Я что-то пропустил? Что еще я мог проверить, и почему это не помогло?