Шаблон списка для интеграции с Dialogflow Messenger (API V1) - PullRequest
0 голосов
/ 04 сентября 2018

Я разрабатываю приложение для 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);

Массив выходит в том формате, в котором я хочу, и в том же формате, который указан в документации. Но когда я публикую это в диалоговом потоке, и я проверяю это в клиенте мессенджера; Я получаю пустой ответ.

Любое руководство приветствуется.

...