2016-04-27 2 views
0

Я выполнил шаги по настройке платформы Facebook Messenger. Проверка запроса веб-крючка GET работает отлично, также как и подписка, но когда я отправляю чат, я продолжаю получать следующие предупреждения разработчика:Facebook Messenger Platform - подписка на Webhook

Hi Norah, Мы заметили, что ваша подписка на Webhooks для URL-адреса обратного вызова https: // {domain}/v1/webhook не принимал обновления в течение как минимум 16 минут. Убедитесь, что ваш сервер обратного вызова функционирует, чтобы вы могли продолжать получать обновления. Если вам нужно обновить URL-адрес обратного вызова, см. https://developers.facebook.com/docs/messenger-platform/webhook-reference#webhook_setup

Если ваш URL-адрес обратного вызова продолжает не принимать обновления в течение 8 часов подряд, мы отключим вашу подписку. Чтобы активировать подписку, сделайте запрос POST с теми же параметрами, и он будет активирован.

Мой почтовый запрос работает через POSTMAN.

Пожалуйста, помогите мне! Это сводит меня с ума!

ответ

1

У вас есть журналы на вашем сервере для получения таких сообщений?

Facebook обязуется вернуть код статуса 200 для почтового запроса, чтобы они знали, что вы его успешно получили. Когда они не действуют, они снова пытаются это сделать, и если это еще не удастся через несколько раз, они дадут вам это предупреждение. Возможно, facebook использует другой контент контента или сообщения, чем вы использовали с почтальоном.

Ваши журналы сервера должны дать вам больше информации об этом.

+0

Когда или как происходит сообщение? Являются ли они фактическими подписанными событиями, например, полученное сообщение? Или это периодические запланированные задачи, сделанные Facebook, чтобы проверить, жив ли мой callback? –

+0

есть только один начальный пароль для проверки, чтобы проверить, жив ли ваш сервер. после этого это событие обратного вызова для каждого сообщения, полученного на подписанной странице.если они не преуспеют, facebook вызывает тревогу (и они будут повторять несколько раз) .., но нет дополнительных проверок для проверки работоспособности. –

1

В зависимости от того, что вы подписали на страницу, будут указаны обратные вызовы для этих событий и многое другое на URL-адресе, указанном в настройке веб-крючка.

Если вы подписались на событие message_deliveries, каждый раз, когда отправляется сообщение, будь то от пользователя на вашей странице или от вашей страницы к пользователю, есть, возможно, больше calllback с объектом json Message Delivered. В Webhook Reference приведен пример объекта json Message Delivered, но нет спецификации или объяснения того, что означают поля.

Иногда я нахожу, что иногда встречается недокументированный обратный вызов Read. Неописанное данные JSON для этого, как:

{"object":"page", 
"entry":[ 
    { 
    "id":"1722858134648129", 
    "time":1465407550812, 
    "messaging":[ 
    { 
     "sender":{"id":"1131485883560113"}, 
     "recipient":{"id":"1722858134642218"}, 
     "timestamp":1465407550868, 
     "read": 
     { 
     "watermark":1465407548057, 
     "seq":428 
     }}]}]} 

По существу, вы должны закодировать свой обратный вызов для обработки всех типов JSon данных грациозно, в том числе неизвестных, даже если вы не можете быть готовы обрабатывать их в дальнейшем , Для тех, кого вы не готовы обрабатывать или не интересоваться, ничего не возвращать с кодом статуса Http 204 (фактически каждый обратный вызов должен возвращать 204, так как тип void).

Если вы обрабатываете только те данные json, которые вас интересуют, любые неожиданные json-данные, скорее всего, вызовут исключение на любом языке, на котором написан код вашего веб-обратного вызова, и приведут к ошибке сервера 500, возвращенной в Facebook. Именно эта ошибка 500 приводит к тому, что Facebook делает эту жалобу в вашем вопросе.

Смежные вопросы