的Facebook Messenger的“开始”按钮,不发送定义的有效载荷

问题描述:

用户我已经设置我的页面上的“开始”按钮:的Facebook Messenger的“开始”按钮,不发送定义的有效载荷

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"}}]}

然而当我收到回传网络挂接,我有这样的有效载荷:

{ 
    "object": "page", 
    "entry": [ 
    { 
     "id": "id1", 
     "time": 1501688073860, 
     "standby": [ 
     { 
      "recipient": { 
      "id": "id1" 
      }, 
      "timestamp": 1501688073860, 
      "sender": { 
      "id": "id2" 
      }, 
      "postback": { 
      "title": "Get Started" 
      } 
     } 
     ] 
    } 
    ] 
} 

现在有办法可以在网络挂接我所定义的有效载荷(GET_STARTED_PAYLOAD)。

this page该文档说,用该按钮定义

有效载荷参数。这只对发送原始模板消息的应用程序可见。

此消息有点令人困惑。有任何想法吗 ?

+0

确保您没有使用错误的访问令牌来创建开始按钮。在我看来,你正在获取的最后一个webhook是订阅了FB页面,该页面没有与用于创建按钮的访问令牌相同的访问令牌。 – dafilipaj

+1

你使用切换协议吗?造成这种情况的一个条件是,如果应用程序当前没有线程控制,这是通过在“备用”通道中接收的事件来表示的。 – amuramoto

+0

是的,我在facebook dev上打开了一张票,这就是结论。谢谢@amuramoto – rmonjo

把这个答案放在这里以防万一任何人需要它。

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