我将此代码用于Facebook Messenger机器人(JavaScript)中的快速回复按钮:
var message = {
"attachment": {
"type": "template",
"payload": {
"template_type": "generic",
"elements": [{
"title": "Order a cucumber",
"subtitle": "A cucumber",
"image_url": "SOME_LINK_HERE",
"buttons": [
{"type": "postback",
"title": "Order",
"payload": "cucumber"},
{"type": "postback",
"title": "Order & Finish",
"payload": "cucumberf"}
]
},
{
"title": "Order a tomato",
"subtitle": "A tomato",
"image_url": "SOME_LINK_HERE",
"buttons": [
{"type": "postback",
"title": "Order",
"payload": "tomato"},
{"type": "postback",
"title": "Order & Finish",
"payload": "tomatof"}
]
},
{
"title": "Order a cake",
"subtitle": "A cake",
"image_url": "SOME_LINK_HERE",
"buttons": [
{"type": "postback",
"title": "Order",
"payload": "cake"},
{"type": "postback",
"title": "Order & Finish",
"payload": "cakef"}
]
}]
}
},
"quick_replies": [
{"content_type": "text",
"title": "Main menu",
"payload": "mainMenu"}
]};
当我尝试获取快速回复按钮(
event.message.quick_reply
)的有效载荷时,它表示未定义。但是对于其他字段,它会返回它应该的内容(例如“ seq”字段或“ text”字段)。我在做什么错,如何使用快速回复按钮的有效载荷?
最佳答案
下面的代码向您展示如何获取用户发送/单击的所有内容:
// handle bot's anwser
$input = json_decode(file_get_contents('php://input'), true);
$senderId = $input['entry'][0]['messaging'][0]['sender']['id'];
// gets the text the user sent to you
$messageText = $input['entry'][0]['messaging'][0]['message']['text'];
// gets the payload of the button
$buttonPayLoad = $input['entry'][0]['messaging'][0]['postback']['payload'];
// gets the payload of the quick replay
$quickReplyPayLoad = $input['entry'][0]['messaging'][0]['message']['quick_reply']['payload'];