Facebook Messenger机器人 - 如何禁用机器人并允许用户与人类聊天

14

我已经思考了大约16个小时的一个问题,需要编写PHP/CuRl等代码-机器人已经能够工作,一切都很好。但目前的问题是如何停用机器人,允许人类与顾客/发送者开始聊天。

有人成功地为此创建了一个路由吗?从我所看到的来看,这相当困难,您需要禁用等等。这对我的客户来说需要付出很多努力。

感谢任何意见。


1
为什么不在收到特定术语时仅由机器人回答,而其他问题仍可通过 Messenger 由人回答呢? - Hui-Yu
是的,我也想过这个 - 意思是当响应的消息不存在于数据库中时,就什么也不做。只是不知道是否有人能够创建一个插件 :) - Michael Self-Made
如果您发送一个特殊命令来禁用它,该怎么办?您的解决方案是什么? - poldixd
4个回答

7
Facebook推出了“交接协议”,旨在促进人/机器人Messenger的结合实现。

https://developers.facebook.com/docs/messenger-platform/handover-protocol

第5步中实际发生的情况有点不清楚:

传递线程控制:在对话的某个时刻,用户可能会选择与在线客服交互。为了处理这种情况,将线程控制从主接收器传递到辅助接收器。辅助接收器将收到一个 messaging_handovers webhook 事件,以通知它现在控制着对话。

这并没有真正禁用机器人(如 OP 所请求的那样),也不是页面所有者控制的,而是用户的控制。似乎 FB 想象用户输入类似“我想与人聊天”的内容触发机器人传递控制……但让页面所有者简单地将应用程序置于待机状态并自行处理消息会很好。


3
一旦您意识到有人想要和人类交谈,就设置一个标志,以启用禁用所有机器人行动。
然后,让您的机器人向您发送消息,或者是回复消息的人,表示需要回复用户ID。在您再次启用机器人之前,让您的机器人继续将从他们那里收到的所有消息发送给您。
创建某种方式,使您的机器人与您互动,允许您向特定用户发送消息,并重新启用机器人与用户的交互的方法。
可能是像“sendMessage104012301230'嗨,对不起你找不到[等等]'”,并启用User104012301230这样的东西。
可能有更好的方法,但这些是我会考虑的一些想法。

2
如果您启用消息回声,每当有人使用页面响应时,都会发送一个回声帖子,在entry-> messaging-> message中没有app_id信息。 您可以使用该信息在一定时间内禁用机器人回复,或者永久禁用,直到您使用某些管理员命令启用为止(这就是我正在执行的操作)。

1
我认为一个解决方案是将消息标记为“未解决”。另一个解决方案是让机器人将对话标记为未读。有人知道是否可以通过API添加标签到对话或标记为未读吗?

我正在尝试做类似的事情 - 如果我们能够在系统内传递变量post和tag,那将更好。 - Michael Self-Made

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接