Bot Framework 简单切换场景

Bot Framework Simple Handoff Scenario

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

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

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

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

我怎样才能做到这一点?

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

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

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

可能的解决方案

我正在研究的一项技术与此相关:

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

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

我有点像 bot muter 中间件。当前的技巧是检测特定用户是页面管理员。

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