Я занимаюсь разработкой приложения для Facebook, в котором используется бот-мессенджер, который отправляет сообщения моему агенту диалогового потока, а затем отправляет сообщения в мой веб-крючок на PHP.
Проблема в том, что я не могу найти правильную документацию, чтобы опубликовать шаблон списка.
У меня есть этот (рабочий) код для отправки назад шаблона кнопки:
$array = array(
"source" => $source,
"speech" => 'test string',
"data" => [ "facebook" => [
"attachment" => [
"type" => "template",
"payload" => [
"template_type"=>"button",
"text"=>"Try the URL button!",
"buttons"=>[
[
"type"=>"web_url",
"url"=>"https://www.messenger.com/",
"title"=>"URL Button",
"webview_height_ratio"=>"full"]
]
]
]
]
],
"displayText" => 'xd',
"contextOut" => array()
);
echo json_encode($array);
Быть понятным; этот код работает нормально, и я взял его из документации здесь:
https://developers.facebook.com/docs/messenger-platform/send-messages/template/button
Но если я возьму код из того же источника, и адаптирую его к диалогу, и реализую его, как показано здесь:
$elementList = array();
foreach ($listings->results as $value) {
array_push($elementList, [
"title" => $value->eventname,
"subtitle"=> $value->description,
"image_url"=> $value->imageurl,
"buttons"=>[
[
"title"=> "View",
"type"=>"web_url",
"url"=>$value->link,
"messenger_extensions"=> true,
"webview_height_ratio"=> "tall",
"fallback_url"=> $value->link
]
]
]);
}
$array = array(
"source" => $source,
"data" => [ "facebook" => [
"attachment" => [
"type" => "template",
"payload" => [
"template_type"=>"list",
"top_element_style"=>"compact",
"elements"=> $elementList,
"buttons"=> [
[
"title"=> "View More",
"type"=> "postback",
"payload"=> "payload"]
]
]
]
]
],
"contextOut" => array()
);
echo json_encode($array);
Массив выходит в том формате, в котором я хочу, и в том же формате, который указан в документации. Но когда я публикую это в диалоговом потоке, и я проверяю это в клиенте мессенджера; Я получаю пустой ответ.
Любое руководство приветствуется.
Задача ещё не решена.
Других решений пока нет …