Bot框架Web聊天令牌协议不起作用

时间:2016-04-08 06:08:18

标签: botframework

Bot框架WebChat控件未使用Token协议,如Embed the Chat Control文档中所述。这是我遇到问题的代码:

        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

错误消息:

{   “message”:“发生错误。” }

如果我输入“hi”消息:

请求网址:https://webchat.botframework.com/api/conversations/null/messages

我收到403 Forbidden消息并附上回复:

{   “message”:“无效的令牌或秘密” }

更新

我在博客上发表了关于我如何在Using the Bot Framework Chat Control工作的信息。

1 个答案:

答案 0 :(得分:2)

这是我们最近推出的一个错误,现在正在修复。

我们还有一个doc错误 - 有两种方法可以检索令牌,另一种方式可以更好地与我们的网络聊天嵌入一起使用。你可以只用GET / api / tokens(在你的标题中像你之前一样使用你的秘密)而不是POST到/ api / conversation,这可以获得一个令牌,但是赢得了#。开始谈话。 Web聊天控件可以自行启动对话,因此这可以防止我们在控件未实际加载的情况下从机器人开始对话。 / api / tokens电话可能会在今天晚些时候开始工作。