【问题标题】:Bot Framework Simple Handoff ScenarioBot Framework 简单切换场景
【发布时间】:2019-08-06 21:07:36
【问题描述】:

我有一个已构建并部署到 Azure 的机器人。一切都很好。目前我们只针对 Facebook Messenger。

我需要处理的场景是在用户和机器人之间的对话期间,页面的所有者可能会介入对话。

此时我希望机器人停止响应并允许页面所有者与用户进行对话。

我似乎找不到太多关于这个简单场景的文档,大多数场景都在谈论将对话交给客户支持人员团队。这是一个更复杂的场景。

我怎样才能做到这一点?

我确实尝试在页面上将机器人设置为Primary receiver,并将收件箱设置为Secondary receiver。这种方法的问题在于它将所有消息和对话标记为Done,并将它们移动到页面所有者Done 收件箱中。这不是我们想要的场景。

有没有人处理过类似的情况?

老实说,如果没有设置主要/次要响应者,从而使线程控制能够在两者之间传递,我真的无法判断这将如何工作。虽然我希望我错了,但有一个简单的方法/解决方案。

可能的解决方案

我正在研究的一种技术与此有关:

https://github.com/palindromed/Bot-HandOff/blob/master/handoff.ts

由于我们的机器人实际上也没有任何要传递的东西,我只是希望机器人在页面管理员潜入并向用户发送消息时停止响应消息。

我有点机器人静音中间件。当前的技巧是检测特定用户是页面管理员。

【问题讨论】:

  • 我看到你知道Messenger平台的Handover Protocol。这似乎是可行的方法,如果您在将消息发送到 Done 文件夹时遇到问题,那么这听起来像是 Facebook 问题。
  • 因为听起来您想要做的就是允许管理员关闭机器人,也许在 Bot Framework 方面有一种方法可以做到这一点。不过,我不会说这很简单。您需要设置某种 Web 服务来访问您想要与之交谈的用户的机器人用户数据,然后设置一个标志,让机器人可以读取以知道不响应该用户的活动。
  • 假设您希望管理员介入对话而不是强制管理员特别记得关闭机器人来触发该操作,也许您可​​以使用message_deliveries webhook。这适用于关闭机器人,但如果您想再次打开机器人,则不行。
  • 老实说,我不得不放弃很多 Facebook 网络钩子事件,因为很多 Facebook 网络钩子事件都没有交付。我在 GitHub 存储库上打开了一个大文件。但是,是的,您的观点都是正确的。我们现在使用 Handoff,通过将消息移动到 Facebook 的收件箱来升级机器人。

标签: c# facebook botframework facebook-messenger


【解决方案1】:

事实证明,Bot Framework 连接器未设置为转发使用 Messenger 平台的切换协议所需的事件,但最近的更新已修复此问题。我写了一篇博文,解释了您需要了解的有关切换协议的所有信息:https://blog.botframework.com/2019/06/03/using-the-facebook-messenger-handover-protocol-with-the-microsoft-bot-framework/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    相关资源
    最近更新 更多