Facebook Messenger"入门"按钮不发送用户定义的有效负载

时间:2017-08-02 16:15:07

标签: facebook facebook-messenger payload facebook-messenger-bot

我设置了一个"开始使用"我页面上的按钮:

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上,文档说

  

使用按钮定义的有效负载参数。这仅对发送原始模板消息的应用程序可见。

这条消息令人困惑。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

将此答案放在此处,以防有人需要。

standby道具表示您正在使用切换协议,并且该应用程序没有线程控制。这会导致您无法收到预期的回发事件,因为接收应用程序与发送回发的应用程序不同。