curl — общий шаблон PHP мессенджер бота

Я занимаюсь разработкой мессенджера с использованием PHP и curl. В настоящее время я отправляю JSON с общим шаблоном, но я не знаю, как получить выбор пользователя. Я хочу получить информацию о том, какая кнопка была нажата для последующего использования. Я пытался проверить весь ответ, но тоже не удалось. Я не вижу никаких ошибок в консоли. Я не использую какие-либо рамки.

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

if($message=="tshirt")
{

$jsonData = '{
"recipient":{
"id":"'.$sender.'"},
"message":{
"attachment":{
"type":"template",
"payload":{
"template_type":"generic",
"elements":[
{
"title":"Object1",

"subtitle":"Description",

"buttons":[
{
"type":"postback",
"title":"L",
"payload":"L_1"},{
"type":"postback",
"title":"XL",
"payload":"XL_1"}
]
}
]
}
}
}
}';
}
if($message=="XL_1")
{
$jsonData = '{
"recipient":{
"id":"'.$sender.'"},
"message":{
"text":"Added to basket"}
}';
}
if($message=="L_1")
{
$jsonData = '{
"recipient":{
"id":"'.$sender.'"},
"message":{
"text":"Added to basket"}
}';
}

$url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$access_token;
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
if(!empty($input['entry'][0]['messaging'][0]['message'])){
$result = curl_exec($ch);
}

2

Решение

Я нашел, как это исправить. Общий шаблонный запрос JSON немного отличается от обычного сообщения. Шаги, которые я сделал:

  1. Добавить переменную обратной передачи

    $ postback = $ input [‘entry’] [0] [‘message’] [0] [‘postback’] [‘payload’];

  2. Изменить оператор if для ответа сервера

    if (! empty ($ input [‘entry’] [0] [‘message’] [0] [‘message’]) |! empty ($ input [‘entry’] [0] [‘message’] [0 ] [ ‘обратной передачи’] [ ‘полезной’])) {

0

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

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

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