Facebook Messenger Bot Webhook проблема

Я пытаюсь заставить работать FB Messenger Bot API. В настоящее время я нахожусь на этапе, где я пытаюсь подписаться на веб-крючок. В настоящее время у меня есть скрипт следующей формы:

#!/usr/bin/php

<?php

$challenge = $_REQUEST['hub_challenge'];
echo $challenge;  # HERE!
$verify_token = $_REQUEST['hub_verify_token'];

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

?>

Однако, когда я пытаюсь «проверить и сохранить» URL-адрес обратного вызова, я получаю сообщение об ошибке:

 The URL couldn't be validated. Response does not match challenge, expected value = '401537941', received=''

а именно, что мой скрипт отправляет пустую строку. Однако, если я изменю строку с пометкой «ЗДЕСЬ!» выше для «echo ‘cat'», сообщение об ошибке такое же, за исключением «receive = ‘cat'», как и ожидалось. Таким образом, мой сценарий выполняется и пытается отправить некоторое содержимое обратно в FB, но по какой-то причине переменная $ challenge пуста. Почему это может быть так?

Спасибо!

0

Решение

 if($_GET['hub_verify_token'] === "validation_token"){
echo($_GET["hub_challenge"]);
} else {
echo("error");
}
1

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

Возможно, в вашем ответе есть лишняя строка, так как вы не выходите из печати после вызова. Попробуйте свой скрипт в браузере и проверьте HTML, чтобы увидеть, есть ли что-то еще.

Используйте следующий код, так как вам необходимо отделить код подтверждения от ваших рабочих вызовов webhook. Также убедитесь, что токен — это не то, что вы создаете из Facebook, это ваше собственное ключевое слово.

/* validate verify token needed for setting up web hook */
if (isset($_GET['hub_verify_token'])) {
if ($_GET['hub_verify_token'] === 'YOUR_SECRET_TOKEN') {
echo $_GET['hub_challenge'];
return;
} else {
echo 'Invalid Verify Token';
return;
}
}

Так что в этом случае ваш токен подтверждения — YOUR_SECRET_TOKEN, теперь, когда вы настраиваете веб-ловушку, введите YOUR_SECRET_TOKEN в токене подтверждения.

Я недавно написала пошаговое руководство со скриншотами здесь.

0