将 Azure 机器人服务与非通道可配置聊天服务结合使用

Using Azure Bot Service with non-Channel-Configurable Chat Service

当我在 Slack 中创建机器人时,我可以使用 Azure Bot Service 上的通道配置从 Slack 接收 event/message 并与处理各种功能的 Web App Bot 通信。

但是,当我在频道配置(例如 Discord)不支持的聊天服务中创建机器人时,我需要在我的 Web App Bot 中设置一个客户端(例如,Discord.Net)与服务通信。

然后,虽然我猜测 Direct Line 通道 (REST API) 将处理 Web App Bot 和 Bot Service 之间的通信,但我不确定它是否正确。我的假设对吗?

此外,我不清楚在这种情况下使用机器人服务是否有优势,因为我可能会在 Azure 或其他位置托管一个单独的 Web 应用程序,并让它与聊天服务进行通信。为什么我需要再添加一项服务来处理?

我想一个可能的优势是我可以通过机器人服务轻松访问各种功能(例如 LUIS)。此外,该机器人可以使用一个代码处理各种平台,如 Skype 或 Cortana。

但是我还是不太明白这个话题。谁能给我建议和最佳做法?


以下是我目前的理解,可能有误。

Directline API 并不是最容易使用的,让 Bot Framework 机器人与 Discord 一起工作需要大量的工作。但 Directline 的目的是连接您的机器人(Azure Bot Service/Web App Bot)和 Discord。要使用 Directline API,您需要:

1) 通过在 Azure(Azure 机器人服务)上注册您的机器人来获取您的直线密码

2) 使用上面的秘密创建你的直线对象(这是 ABS 和 Discord 之间的通信线路)

3) 使用您的直达对象 POST 从用户到机器人的活动并监听来自机器人的活动

4) 与对话无关的其他目的:您的直线对象将监视您的 websockets 的连接状态,并为对话保持令牌刷新

Directline-js repo 有很好的自述文件和代码示例,但请记住,该框架正在不断改进。在撰写本文时,有 8 个 pull request 等待 repo 的审查。

AI Help Website 早在 2018 年 7 月(v4 发布之前)就如何使用 Directline API 和 C#

写了一篇预览

最后,Directline API 的官方文档是 here

至于将您的机器人与 Discord 连接,Discord API 参考资料包含有关如何获取您的授权令牌的说明 here