我能够通过连接器客户端使用服务 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);