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

时间:2019-05-19 12:05:00

标签: twilio botframework channels

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

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

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

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

在Azure门户中是否可以执行此操作?有更好或更简单的方法吗?

谢谢

亚当·莱弗特 www.leffert.com

1 个答案:

答案 0 :(得分:0)

  

在Azure门户中是否可以执行此操作?

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

  

有更好或更简单的方法吗?

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

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

  2. 对于发送到机器人的每个活动,请添加数字:Activity.ChannelData = new { fromNumber: <555-555-5555> }服务器将邮件转发给漫游器

  3. 处理机器人内部的活动,然后将fromNumber重新附加到机器人的传出活动中,以便Twilio API服务器知道将传出消息发送到何处。 Bot将回复发送到服务器

  4. 然后让Twilio API服务器将Activity.Text发送给用户。 服务器将邮件从漫游器转发给用户

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