Facebook使者“开始”button

我正在Messenger平台上做一个聊天机器人。 我想要实现启动button。 当用户第一次启动与机器人的对话时,我有button出现。 问题是我不知道该怎么做。 文档不能很好地解释当点击button时如何正确响应。 以下curl命令用于实现button。

curl -X POST -H "Content-Type: application/json" -d '{ "setting_type":"call_to_actions", "thread_state":"new_thread", "call_to_actions":[ { "payload": { "message" : { "text": "Get started" } } } ] }' "https://graph.facebook.com/v2.6/me/thread_settingsaccess_token=XXXX" 

任何帮助如何实际使用获取开始button将不胜感激。

你的机器人已经运行了吗? 如果是这样,你无事可做,FBpipe理你身边的一切。 一旦点击“开始”button,它就会像用户使用button(通过“回发”处理)一样调用您的程序。

我知道这是一个古老的问题,但我面临着类似的问题,因为在堆栈溢出没有其他回答的问题关于这个主题,这仍然是没有答案,这些都是可以解决您的问题的一些事情。

首先,您应该检查您的请求,因为正如文档中所述,您需要定位curl post请求的端点是https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN (介意问号)。

其次,值得检查的是, payload属性需要一个string ,而不是你在这里发送的对象。 发送一个string化的JSON也可以。

另外,您可能需要确保已经在Facebook开发人员面板中正确设置了Messenger端点和事件,特别是事件messaging_postbacks

应该能够从request.body中取出有效载荷

它将包含curl请求中定义的post-back https://developers.facebook.com/docs/messenger-platform/webhook-reference/postback

Messenger将发布到您的webhook地址页面订阅上发生的所有事情,如传入的消息或从开始button回发

看看来自Facebook文档的例子https://glitch.com/edit/#!/messenger-bot?path=bot.js:1:0

 // Message processing app.post('/webhook', function (req, res) { .. } 

在示例中检查receivedPostback函数我的链接你的开始行动将在回发variables。