facebook-messenger - 如何使按钮在信使聊天机器人上工作?
问题描述
我们正在开发一个 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 接收有效载荷。我怀疑这是我的应用程序权限的问题,但我已经向应用程序添加了我认为它需要的所有权限。
请注意,左侧的选项由机器人自动提供,用户只需单击这些选项即可继续对话。用户无需键入任何内容。我们的问题是,当用户单击左侧的选项时,我们没有收到该消息,因此我们无能为力。
我找不到与这种行为相关的任何文档,有人可以帮助我吗?
任何帮助都将受到欢迎。
谢谢,如果您需要任何进一步的信息,请告诉我。
解决方案
推荐阅读
- c++ - 在 LLVM 中获取全局字符串值
- php - PHP Date&Time:获取下一个星期二,间隔 7 天
- c# - 在通过 P/Invoke 获得的 C++ 结构上设置 C# 回调
- ios - 创建一个没有零值的对象
- google-apps-script - setValue 在某些 Google 应用脚本中不起作用
- python - 如何创建具有不同 Id 和其他两列不同值的新列?
- r - 迭代创建数据框子集的函数
- extjs - 我需要在警报框消息中写入名字,例如如果我输入名字杰克,那么警报会像杰克登录成功一样出现
- python - 停止录制在命令提示符下工作,而不是在 PyCharm IDE 中
- sql - SQL 删除具有不同值的重复行,但将它们保留并显示在单行中