Facebook Messenger API: проблемы с настройкой webhook
Я пытаюсь настроить веб-крюк для новой платформы Facebook Messenger bot на моем веб-сервере PHP и получаю эту ошибку:
URL не удалось проверить. Ответ не соответствует вызову, ожидаемое значение = '364011207', получено='
ресурсы
https://developers.facebook.com/docs/messenger-platform/quickstart
https://developers.facebook.com/docs/messenger-platform/webhook-reference#common_format
любая помощь очень ценится.
6 ответов
я наткнулся на исправление. Я отказался от попытки 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/
код узел.js код и должен запускаться на сервере не в <script>
тег в HTML.
вот простая прогулка по настройке бота messenger с узлом.Яш: https://github.com/voronianski/simon-le-bottle
по существу вам нужно убедиться, что у вас есть хост, который поддерживает узел.JS приложений и запустить его как таковой. Он не будет работать внутри HTML.
@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
надеюсь, что это помогает!
Не уверен, что это поможет, но параметры запроса, которые отправляет FB, с подчеркиванием не точка, например:
- hub_verify_token
- hub_mode
- hub_challenge
П. С.
извините, это действительно для PHP
Если вы используете это как Node.js
приложение, и вы идете от Руководство Facebook Quickstart упомянутый в вопросе, вам придется указать URL-адрес webhook на [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);
});