我有一个Microsoft Bot Framework v4机器人。它有一个Twilio SMS频道。两者都可以。 我的目标是添加第二个指向同一机器人的Twilio SMS电话号码。
我在服务器中编写了代码以读取RecipientId和RecipientName。我希望服务器识别用户发短信给哪个号码并根据该数据做出响应。
我写了一个实现ICredentialProvider的类(MyBotCredentialProviderStd)。它分配并存储SimpleCredentialProvider实例,并将调用传递给该对象。当它收到IsValidAppIdAsync调用时,会将应用程序ID与(暂时)静态值进行比较,该值对应于同一服务器应用程序的第二次机器人注册。如果匹配,则返回true。如果不匹配,请调用MS类。与GetAppPasswordAsync方法相同。
此代码有效。我可以将文本消息发送到两条Twilio SMS消息。服务器读取目标电话号码并回复。
在Azure门户中是否可以执行此操作?有更好或更简单的方法吗?
谢谢
亚当·莱弗特 www.leffert.com
答案 0 :(得分:0)
在Azure门户中是否可以执行此操作?
不幸的是,没有。每个Web应用程序Bot / Bot通道注册只能与一个Twilio号关联。
有更好或更简单的方法吗?
您正在使用的方法可能是最简单的。我想到的唯一可行的选择是使用Twilio SMS API。流将是这样的:
创建一个运行Twilio SMS API代码的服务器,该服务器基本上只是通过DirectLine API将消息转发给机器人。 用户向该服务器发送消息
对于发送到机器人的每个活动,请添加数字:Activity.ChannelData = new { fromNumber: <555-555-5555> }
。 服务器将邮件转发给漫游器
处理机器人内部的活动,然后将fromNumber
重新附加到机器人的传出活动中,以便Twilio API服务器知道将传出消息发送到何处。 Bot将回复发送到服务器
然后让Twilio API服务器将Activity.Text
发送给用户。 服务器将邮件从漫游器转发给用户
同样,您使用的路线可能最容易开发和维护。