首页 > 解决方案 > 如何使按钮在信使聊天机器人上工作?

问题描述

我们正在开发一个 Facebook Messenger 聊天机器人,但我们在将我们的聊天机器人与 Facebook Messenger 集成时遇到了问题。

在聊天期间,当用户发送文本消息时,我们的 webhook 会接收数据并相应地进行所有处理。

但是,当我们向用户发送带有按钮的菜单并且用户单击按钮而不是输入消息时,我们的 webhook 不会接收到有效负载以及我们应该接收的任何其他数据。

当用户开始与我们的聊天机器人对话时,我们会向他们发送以下消息:

{
   "recipient":{
      "id":"2492007720844646"
   },
   "message":{
      "attachment":{
         "type":"template",
         "payload":{
            "template_type":"button",
            "text”:”What do you prefer?”,
            "buttons":[
               {
                  "type":"postback",
                  "title”:”Blue",
                  "payload":"{'function':{'name':'color_blue'}}"
               },
               {
                  "type":"postback",
                  "title”:”Red”,
                  "payload":"color_red"
               }
            ]
         }
      }
   }
}

如果用户单击标题为“蓝色”的按钮,我们的 webhook 将不会接收到有效负载“蓝色”。另一方面,如果用户键入“color blue”消息,我们的 webhook 会毫无问题地接收它。

如果我尝试使用我自己的 Facebook 用户(应用程序管理员)来模拟问题,当我单击按钮时,webhook 会毫无问题地接收到有效负载“蓝色”,但是当任何其他用户尝试相同的操作时,我们的 webhook 将不会t 接收有效载荷。我怀疑这是我的应用程序权限的问题,但我已经向应用程序添加了我认为它需要的所有权限。

单击此处查看带有我们正在尝试做的示例的图像

请注意,左侧的选项由机器人自动提供,用户只需单击这些选项即可继续对话。用户无需键入任何内容。我们的问题是,当用户单击左侧的选项时,我们没有收到该消息,因此我们无能为力。

我找不到与这种行为相关的任何文档,有人可以帮助我吗?

任何帮助都将受到欢迎。

谢谢,如果您需要任何进一步的信息,请告诉我。

标签: facebook-messenger

解决方案


推荐阅读