facebook — Поиск сообщения FB Messenger по конкретному слову в переполнении стека

Поэтому я пытаюсь создать чат-чат Facebook Messenger, очень простой. У меня он работает с жестко закодированным ответом, но я хочу, чтобы он мог читать сообщение отправителя и отвечать определенным образом, если он находит это слово — как, например, чат-боты. Я пытаюсь сделать это с помощью preg_match() но когда я использую свой текущий код, бот не отвечает вообще. Вот мой код:

<?php
/**
* Webhook for Facebook Messenger Bot
*/
$access_token = "{mytoken}";
$verify_token = "{mytoken2}";

$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'];

// perform a case-Insensitive search for the word "time"if (preg_match('[hi|hello|sup]', $message)) {
$answer = "Hiya!";
}
else {
$answer = "IDK.";
}

// send the response back to sender
// 'text': 'Hiya!'

$jsonData = "{
'recipient': {
'id': $sender
},
'message': {
'text': $answer
}
}";

// initiate cURL.
$ch = curl_init("https://graph.facebook.com/v2.6/me/messages?access_token=$access_token");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
if (!empty($input['entry'][0]['messaging'][0]['message'])) {
curl_exec($ch);
}

0

Решение

Знаете ли вы, действительно ли вы получаете сообщения от Messenger Platform? Проверка вашего веб-крюка заканчивается echoгде на самом деле вам нужно ответить на платформу с кодом состояния 200, Вы также можете проверить свою панель инструментов Facebook Apps, чтобы выяснить, проверен ли ваш веб-крючок и отправляются ли сообщения.

Документация: https://developers.facebook.com/docs/messenger-platform/getting-started/webhook-setup

Как только вы узнаете, что ваш веб-крючок проверен и вы получаете сообщения, начните с фиксированного ответа, а затем переходите к динамическим ответам. Как подсказал @Toto, добавление логирования будет очень полезно для отладки вашего кода.

0

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

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