创建与用户的对话 -(SMS 通道)
Create Conversation with User - (SMS channel)
我查看了 GIT 中提供的 proactiveMessages 示例和 createNewConveration 机器人示例。这两个示例都表明对话是在频道帐户最初与机器人交互后开始的。我需要创建一个机器人,它可以与以前从未与我的机器人交互过的用户(特别是 SMS)开始对话。我有创建频道帐户对象的有效 ID(在本例中为短信号码)和我想用作消息生产者的 twilio phone 号码 activity。
2个问题:
1) 为了使用连接器客户端并创建直接对话,用户之前是否有必要与我的机器人进行过交互?如果是这样,有没有办法将此频道帐户数据加载到机器人数据存储中,以便我创建对话?
2) 是否会有未来版本允许我们的机器人(通过 api)开始与有效频道帐户的对话? api 让我创建一个对话有点误导。它应该被命名为 "resumeConversation"。
我能够通过连接器客户端与服务 url: https://sms.botframework.com 和机器人应用程序凭据开始对话。我在跟踪记录器中注意到,频道帐户 ID 在短信号码中包含国家代码。在这种情况下,频道 accountId 的格式应为 +1[areacode][number]。我的主动问候发送成功。所以我相信 SMS 通道将允许从 BOT 到用户开始对话。
ServiceUrl 在这种情况下是 https://sms.botframework.com 用于短信通道。
var serviceUrl = GetServiceUrlByChannelId(channel);
MicrosoftAppCredentials.TrustServiceUrl(serviceUrl, DateTime.Now.AddDays(7)); //todo change magic number
var account = new MicrosoftAppCredentials([MicrosoftAppId], [MicrosoftAppPassword]);
_connector = new ConnectorClient(new Uri(serviceUrl), account);
var botAccount = new ChannelAccount { Id = bot.Id, Name = bot.Name };
var toAccount = new ChannelAccount { Id = recipient.Id, Name = recipient.Name };
if (!MicrosoftAppCredentials.IsTrustedServiceUrl(serviceUrl)) {
throw new Exception("Cannot create conversation! Service URL is not trusted!");
}
var conversationResponse = _connector.Conversations.CreateDirectConversation(botAccount, toAccount);
我查看了 GIT 中提供的 proactiveMessages 示例和 createNewConveration 机器人示例。这两个示例都表明对话是在频道帐户最初与机器人交互后开始的。我需要创建一个机器人,它可以与以前从未与我的机器人交互过的用户(特别是 SMS)开始对话。我有创建频道帐户对象的有效 ID(在本例中为短信号码)和我想用作消息生产者的 twilio phone 号码 activity。
2个问题: 1) 为了使用连接器客户端并创建直接对话,用户之前是否有必要与我的机器人进行过交互?如果是这样,有没有办法将此频道帐户数据加载到机器人数据存储中,以便我创建对话? 2) 是否会有未来版本允许我们的机器人(通过 api)开始与有效频道帐户的对话? api 让我创建一个对话有点误导。它应该被命名为 "resumeConversation"。
我能够通过连接器客户端与服务 url: https://sms.botframework.com 和机器人应用程序凭据开始对话。我在跟踪记录器中注意到,频道帐户 ID 在短信号码中包含国家代码。在这种情况下,频道 accountId 的格式应为 +1[areacode][number]。我的主动问候发送成功。所以我相信 SMS 通道将允许从 BOT 到用户开始对话。
ServiceUrl 在这种情况下是 https://sms.botframework.com 用于短信通道。
var serviceUrl = GetServiceUrlByChannelId(channel);
MicrosoftAppCredentials.TrustServiceUrl(serviceUrl, DateTime.Now.AddDays(7)); //todo change magic number
var account = new MicrosoftAppCredentials([MicrosoftAppId], [MicrosoftAppPassword]);
_connector = new ConnectorClient(new Uri(serviceUrl), account);
var botAccount = new ChannelAccount { Id = bot.Id, Name = bot.Name };
var toAccount = new ChannelAccount { Id = recipient.Id, Name = recipient.Name };
if (!MicrosoftAppCredentials.IsTrustedServiceUrl(serviceUrl)) {
throw new Exception("Cannot create conversation! Service URL is not trusted!");
}
var conversationResponse = _connector.Conversations.CreateDirectConversation(botAccount, toAccount);