Facebook messenger'开始'按钮

时间:2017-01-15 01:34:31

标签: javascript node.js facebook

我目前在信使平台上制作聊天机器人。 我想实现get start按钮。当用户首次启动与机器人的对话时,我出现了按钮。问题是我不知道该怎么做。文档没有很好地解释如何在单击按钮时做出适当的响应。以下curl命令用于实现按钮。

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"

非常感谢任何有关如何实际使用“开始”按钮的帮助。

3 个答案:

答案 0 :(得分:0)

你的机器人已经运行了吗? 如果是这样你就无所事事,FB会为你管理他身边的一切。 点击“开始”按钮后,它会像用户使用按钮时那样调用程序(通过“回发”处理)。

答案 1 :(得分:0)

我知道这是一个老问题,但我遇到了类似的问题,因为在Stack Overflow中没有其他有关此主题的问题,这仍然没有答案,这些可能会解决您的问题。

首先,您应该检查您的请求,因为as described in the docs,您需要定位您的卷毛帖子请求的端点是https://graph.facebook.com/v2.6/me/thread_settings?access_token=PAGE_ACCESS_TOKEN(请注意问号)。

其次,还需要检查payload属性是否需要字符串,而不是您在此处发送的对象。发送字符串化的JSON也应该有用。

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

答案 2 :(得分:0)

应该能够从request.body

中取出有效载荷

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

Messenger会在您的webhook地址发布页面订阅上发生的所有内容,例如收到的消息或来自“开始使用”按钮的回发

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

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

检查我链接的示例中的receivedPostback函数你的get start动作将在回发变量中。