【发布时间】:2019-06-17 20:48:43
【问题描述】:
我基本上是在尝试与 Microsoft Bot Framework 进行主动对话。我使用以下代码成功为 Skype for BUsiness 这样做:
string serviceUrl = "https://api.skypeforbusiness.com/platformservice/botframework";
MicrosoftAppCredentials.TrustServiceUrl(serviceUrl);
var connector = new ConnectorClient(new Uri(serviceUrl), "{app-id}", "{app-password}");
var user = new ChannelAccount("any-user-upn@domain.com", "Name of User");
var bot = new ChannelAccount("bot-upn@campana-schott.com", "Name of bot");
ConversationParameters cpMessage = new ConversationParameters(true, bot, new List<ChannelAccount> { user }, "Topic of the conversation");
ConversationResourceResponse response = await connector.Conversations.CreateConversationAsync(cpMessage);
启动对话后,我可以向用户发送消息,效果很好。但对于 MS Teams,我有两个问题: 1. 哪个 serviceURL 是正确的?我发现了一些提示,包括以“https://smba.trafficmanager.net ...”开头的 url,但它们都不起作用,我总是收到异常“Bad Request”。
第二个问题:我是否需要 Teams-Context(Teams ID)来实际发布消息,或者是否可以(如我使用 Skype 的示例)只与用户发起聊天?
编辑:我尝试添加 channelData (teamsChannelId) 并使用服务 URL“https://smba.trafficmanager.net/emea-client-ss.msg” - 然后我得到响应代码“禁止”。 这让我想到了一个问题:实际上是否可以在没有任何 Team-Context(只是聊天)的情况下发起与团队的对话?
提前致谢, 马丁
【问题讨论】:
-
确定一下:bot v3 还是 v4?
-
我不在乎哪个版本,我尝试了 v3 和 v4 - 现在看我的下一个答案,我想我找到了为什么我的代码不起作用的解决方案以及为什么基本用例永远不会的答案工作。
标签: azure botframework