Messenger бот не работает

Я пытаюсь настроить очень простой бот. Я сгенерировал токен доступа, создал простой index.php файл на моем веб-сервере (сертифицированный SSL), установите веб-крючок, который указывает на мой index.php файл, подписал мой webhook на мою страницу событий (все на developers.facebook.com), обмен сообщениями моего бота и не получил ответа. В чем может быть проблема?

(Я проверил все: оба токена, я администратор и т. Д.)

Вот мой код:

<?php
$access_token = "i-filled-this-out";
$verify_token = "i-also-filled-this-out";
$hub_verify_token = null;

if(isset($_REQUEST['hub_challenge'])) {
$challenge = $_REQUEST['hub_challenge'];
$hub_verify_token = $_REQUEST['hub_verify_token'];
}

if ($hub_verify_token === $verify_token) {
echo $challenge;
}

$input = json_decode(file_get_contents('php://input'), true);
$sender = $input['entry'][0]['messaging'][0]['sender']['id'];
$message = $input['entry'][0]['messaging'][0]['message']['text'];
$message_to_reply = '';

$message_to_reply = 'Huh! what do you mean?';

//API Url
$url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$access_token;
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = '{
"recipient":{
"id":"'.$sender.'"},
"message":{
"text":"'.$message_to_reply.'"}
}';
//Encode the array into JSON.
$jsonDataEncoded = $jsonData;
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
//curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
//Execute the request
if(!empty($input['entry'][0]['messaging'][0]['message'])){
$result = curl_exec($ch);
}

2

Решение

Убедитесь, что ваш webhook возвращает HTTP-ответ 200 на запросы POST, отправленные Facebook.

Какой веб-сервер вы используете? Проверьте журналы, чтобы увидеть, получает ли ваш webhook запросы POST от facebook (и возвращает 200).

Лучший способ протестировать ваш webhook — использовать что-то вроде почтальона, чтобы имитировать стандартные сообщения POST, сделанные на Facebook, и проверять ответы, которые вы обслуживаете.

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector