Bot控件没有使用令牌协议,正如嵌入聊天控件文档中所描述的那样。下面是我遇到麻烦的代码:
string webChatSecret = ConfigurationManager.AppSettings["WebChatSecret"];
var request = new HttpRequestMessage(HttpMethod.Post, "https://webchat.botframework.com/api/conversations");
request.Headers.Add("Authorization", "BOTCONNECTOR " + webChatSecret);
HttpResponseMessage response = await new HttpClient().SendAsync(request);
string responseJson = await response.Content.ReadAsStringAsync();
WebChatTokenResponse webChatResponse = JsonConvert.DeserializeObject<WebChatTokenResponse>(responseJson);
return $"<iframe width='400px' height='400px' src='https://webchat.botframework.com/embed/PigLatinBotJoeMayo?t={webChatResponse.Token}'></iframe>";WebChatTokenResponse是
public class WebChatTokenResponse
{
public string ConversationID { get; set; }
public string Token { get; set; }
}当我调试并命中断点时,我确实有一个ConversationID和一个令牌。没有异常被抛出。
如果我只使用这个秘密,就像这样(而不是上面的代码,一切都正常):
string webChatSecret = ConfigurationManager.AppSettings["WebChatSecret"];
return $"<iframe width='400px' height='400px' src='https://webchat.botframework.com/embed/PigLatinBotJoeMayo?s={webChatSecret}'></iframe>";下面是我在F12工具中看到的错误消息:
我看到一个500内部服务器的错误
请求网址:https://webchat.botframework.com/api/conversations
带有错误消息:
{“消息”:“发生错误”}
如果我输入一条“嗨”消息:
请求网址:https://webchat.botframework.com/api/conversations/null/messages
我收到一封403封的请示信,回复如下:
{“消息”:“无效令牌或秘密”}
更新
我在博客上说我是如何在使用聊天控件工作的。
发布于 2016-04-08 18:11:09
这是我们最近引入并正在修复的一个bug。
我们也有一个文档错误-有两种方法来检索一个令牌,另一种方式将更好地工作时,我们的网络聊天嵌入。与创建会话并获取令牌的/api/ POSTing不同,您可以只获取/api/tokens (与以前一样,您的秘密在标头中),您将得到一个令牌,但不会启动会话。web聊天控件可以自己启动会话,因此在控件没有实际加载的情况下,这将阻止我们从bot启动会话。今天晚些时候,/api/tokens调用可能会正常工作。
https://stackoverflow.com/questions/36492682
复制相似问题