【发布时间】:2018-01-09 23:36:43
【问题描述】:
我在我的页面上设置了一个“开始”按钮:
curl -X POST -H "Content-Type: application/json" -d '{
"get_started":{
"payload":"GET_STARTED_PAYLOAD"
}
}' "https://graph.facebook.com/v2.6/me/messenger_profile?access_token=token"
这工作正常,并以{"result":"success"}回应
如果我检查数据:
curl -X GET "https://graph.facebook.com/v2.6/me/messenger_profile?fields=get_started&access_token=token
我有一个很好的答案:{"data":[{"get_started":{"payload":"GET_STARTED_PAYLOAD"}}]}
但是当我收到回发 webhook 时,我得到了这个负载:
{
"object": "page",
"entry": [
{
"id": "id1",
"time": 1501688073860,
"standby": [
{
"recipient": {
"id": "id1"
},
"timestamp": 1501688073860,
"sender": {
"id": "id2"
},
"postback": {
"title": "Get Started"
}
}
]
}
]
}
现在我可以获取我在 webhook 中定义的有效负载 (GET_STARTED_PAYLOAD)。
在this page 上,医生说
使用按钮定义的有效负载参数。这仅对发送原始模板消息的应用可见。
这条消息有点令人困惑。有什么想法吗?
【问题讨论】:
-
确保您没有使用错误的访问令牌来创建开始按钮。在我看来,您获取的最后一个 webhook 订阅了 FB 页面,该页面没有与用于创建按钮的访问令牌相同的访问令牌。
-
您使用的是切换协议吗?导致这种情况的一种情况是,如果应用当前没有线程控制,这由在
standby通道中接收的事件表示。 -
是的,我在 facebook dev 上开了一张票,这就是结论。谢谢@amuramoto
标签: facebook facebook-messenger payload facebook-messenger-bot