如何将第二个 Twilio SMS 通道添加到单个 Microsoft Bot Framework v4 应用程序?

How to add a second Twilio SMS channel to a single Microsoft Bot Framework v4 app?

我有一个 Microsoft Bot Framework v4 机器人。它有一个 Twilio SMS 频道。两者都有效。 我的目标是添加第二个指向同一个机器人的 Twilio SMS phone 号码。

我在服务器中编写了读取RecipientId 和RecipientName 的代码。我希望服务器识别用户发短信给哪个号码并根据该数据做出响应。

我写了一个 class (MyBotCredentialProviderStd),它实现了 ICredentialProvider。它分配并存储一个 SimpleCredentialProvider 实例并将调用传递给该对象。当它收到 IsValidAppIdAsync 调用时,它会将应用程序 ID 与(目前)静态值进行比较,该静态值对应于同一服务器应用程序的第二个机器人注册。如果匹配,return 为真。如果不匹配,调用MSclass。 GetAppPasswordAsync 方法相同。

此代码有效。我可以向两条 Twilio SMS 消息发送文本消息。服务器读取目标 phone 号码并回复。

有没有办法在 Azure 门户中执行此操作?有更好或更简单的方法吗?

谢谢,

亚当·莱弗特 www.leffert.com

Is there a way to do this in the Azure Portal?

不幸的是,没有。每个 Web 应用程序 Bot/Bot 频道注册只能与一个 Twilio 号码相关联。

Is there a better or simpler approach?

您使用的方法可能是最简单的方法。我能想到的唯一其他可行的选择是使用 Twilio SMS API。流程将是这样的:

  1. 创建服务器 运行 Twilio SMS API 代码,基本上只是通过 DirectLine API 将消息转发给机器人。 用户向此服务器发送消息

  2. 发送给机器人的每个 activity,包括数字:Activity.ChannelData = new { fromNumber: <555-555-5555> }服务器将消息转发给机器人

  3. 处理你的机器人中的activity,re-attachfromNumber到机器人的传出activity,这样你的TwilioAPI 服务器知道将传出消息发送到哪里。 机器人向服务器发送回复

  4. 然后让 Twilio API 服务器向用户发送 Activity.Text服务器将消息从 bot 转发给用户

同样,您使用的路由可能是最容易开发和维护的。