我正在尝试整合微软机器人框架 https://dev.botframework.com/使用 WhatsApp。
我已经拥有与机器人服务对话的现有机器人(Skype 和网络聊天),并试图创建一个新的通信渠道。
我该如何构建这个新渠道?
我已经有了可以从 WhatsApp 发送和接收消息的 API,我计划在收到用户发来的消息时挂钩我的机器人服务,但我不知道如何使用我的机器人服务,因为它接受 a 类Activity
.
有两种可能将机器人连接到其他通道 https://learn.microsoft.com/en-us/azure/bot-service/bot-service-channel-additional-channels?view=azure-bot-service-4.0,使用自定义适配器并使用 DirectLine API。
我更喜欢使用适配器,因为您将直接连接到 WhatsApp 服务,这提供了很大的灵活性。但是,在某些情况下,您可能会受益于使用连接到 Direct Line 的代理服务。
最后,您可以使用任何您喜欢的提供商,只要他们提供 API。例如 Twilio、RingCentral、InfoBip、LivePerson 等提供商。
我推荐的方法:定制适配器
- 机器人使用机器人中的额外端点直接连接到 WhatsApp 服务
- 编写良好的适配器将所有 Bot Framework SDK 活动转换为 WhatsApp 服务,反之亦然。 (example https://www.npmjs.com/package/@botbuildercommunity/adapter-twilio-whatsapp#advanced).
- 多个适配器可以用于同一个机器人项目
- 适配器可以为通道提供特定的帮助函数,可从您的机器人项目中调用。 (example https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/tree/develop/libraries/Bot.Builder.Community.Adapters.Alexa#turncontext-extension-methods)
目前,BotBuilderCommunity 中提供了以下适用于 WhatsApp 的适配器。
-
Twilio WhatsApp 适配器 https://www.npmjs.com/package/@botbuildercommunity/adapter-twilio-whatsapp(Javascript)
-
RingCentral (WhatsApp) 适配器 https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/tree/develop/libraries/Bot.Builder.Community.Adapters.RingCentral (C#)
有关如何构建自定义适配器的示例可以在 BotBuilderCommunity 上找到。 (C# https://github.com/BotBuilderCommunity/botbuilder-community-dotnet#adapters, JavaScript https://github.com/BotBuilderCommunity/botbuilder-community-js)
替代方法:连接到 DirectLine 的代理服务
- DirectLine API 通过自托管代理服务与 WhatsApp 服务进行通信
- 代理服务可用于 C#/NodeJS/Python 机器人,而不是特定于语言的
- 编写良好的代理服务将所有 Bot Framework SDK 活动转换为 WhatsApp 服务,反之亦然。
可以在此处找到如何构建代理服务的示例:C# https://www.robinosborne.co.uk/2016/12/19/connecting-alexa-to-a-botframework-chatbot/, JavaScript https://github.com/Capgemini-AIE/bot-framework-actions-on-google.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)