Я установил рабочий фейсбук chatbot в PHP и создал родовую шаблонную карусель с одной из кнопок обратной передачи:
[ type"=>"postback", "title"=>"Opening Hours", "payload"=>"Opening Hours" ],
Нажав кнопку postback и проверяя мои журналы PHP, я получаю:
{"object":"page","entry":[{"id":"457107221010xxx","time":1513219207386, "messaging": [{"recipient": {"id":"457107221010xxx"},"timestamp":1513219207386,"sender": {"id":"1510264525690xxx"},"postback":{"payload":"Opening Hours","title":"Opening Hours"}}]}]}
Я обрабатываю этот ответ в моем коде:
$postback = $input['entry'][0]['messaging'][0]['postback']['payload']; if ($postback!="") { $answer = ["text"=> $openingHours]; }
Но в окне посланника после нажатия указанной кнопки обратной передачи мессенджер, кажется, «набирает» диалог с тремя точками, отображающий несколько секунд, но затем он просто останавливается без каких-либо ответов. Я включил опцию «message_postback» в webhooks, и другие запросы работают (например, если я набираю «Часы открытия» вручную, я получаю ответ «Часы открытия»). Я обрабатываю другие запросы с помощью следующего кода, и он работает:
$sender = $input['entry'][0]['messaging'][0]['sender']['id']; $message = $input['entry'][0]['messaging'][0]['message']['text']; if(preg_match('[opening|hours]', strtolower($message))) { $answer = ["text"=>" Opening Hours: 10:30 am – 1:00 am (Sun-Thu)"]; } else { //show menu }
Любые советы очень ценятся!