JavaScript Messenger API: проблема при настройке веб-крючка

Я пытаюсь настроить веб-хук для новой платформы ботов Facebook Messenger на своем веб-сервере PHP и получаю эту ошибку:

URL не может быть подтвержден. Ответ не соответствует запросу,
ожидаемое значение = ‘364011207’, получено = ‘

Ресурсы

https://developers.facebook.com/docs/messenger-platform/quickstart

https://developers.facebook.com/docs/messenger-platform/webhook-reference#common_format

Любая помощь с благодарностью.

14

Решение

Я наткнулся на исправление. Я отменил попытку js и создал новый php-файл со следующим кодом:

<?php

$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];

if ($verify_token === 'my_token_code') {
echo $challenge;
}

Я получил этот код из первых 10 минут этого видео:
https://www.facebook.com/marketingdevelopers/videos/883648801749520/

21

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

Этот код Node.js код и должен быть запущен на сервере, а не в <script> тег в вашем HTML.

Вот простой пример настройки бота мессенджера с помощью node.js:
https://github.com/voronianski/simon-le-bottle

По сути, вам нужно убедиться, что у вас есть хост, который поддерживает приложения node.js, и запускать его как таковой. Это не будет работать внутри HTML.

6

Я просто решил эту проблему, добавив / webhook в URL обратного вызова …

4

@shane

webhook: function(req, res) {

if (req.query['hub.verify_token'] === 'tokentoken') {
res.send(req.query['hub.challenge']);
} else {
res.send('Error, wrong validation token');
}
}

Обратите внимание, что именно вы делаете. но это то, что я сделал, и это работает.

Я протестировал использование сервера ngrok, так как у меня нет имени домена и URL обратного вызова https://werwrwetwtw.ngrok.io/webhook

Надеюсь это поможет!

3

Не уверен, что это поможет, но параметры запроса, которые отправляет FB, с подчеркиванием, а не с точкой, например :

  • hub_verify_token
  • hub_mode
  • hub_challenge

Постскриптум

Извините, это действительно для PHP

2

Если вы используете это как Node.js приложение, и вы пришли из Краткое руководство по Facebook упомянутый в вопросе, вы должны будете указать URL веб-крючка на [your-server-root]/webhook, Обратите внимание на эту часть учебник:

// Adds support for GET requests to our webhook
app.get('/webhook', (req, res) => {
...
// Responds with the challenge token from the request
res.status(200).send(challenge);
});
2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector