【问题标题】:Sending Message from Botframework to Azure Test WebChat将消息从 Botframework 发送到 Azure Test WebChat
【发布时间】:2019-07-25 08:45:33
【问题描述】:

我目前正在尝试将消息从 Bot Framework Emulator 发送到 Azure 中的测试网络聊天。我的问题是尝试这个时:

var my2Response = await myClient.SendAsync(request).ConfigureAwait(false);

我收到StatusCode: 403, ReasonPhrase: 'Forbidden',,但我不知道我应该在这里做什么。我注意到 request.Content 也有 Headers 并尝试了这个疯狂的东西:request.Content.Headers.Add("Authorization", "Bearer " + myToken);

但正如您可能猜到的那样,这不是解决方案。如何通过 Botframework 向我的 Azure 测试网络聊天发送帖子? (如果可行,我想尝试通过 MS Teams 向 Test Webchat 发送消息)

相关代码如下:

           HttpClient myClient = new HttpClient();
            myClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
            var myToken = token;
            myClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", myToken);

            var request = new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                RequestUri = new System.Uri("https://webchat.botframework.com/v3/conversations/conversationID/activities"),
                Content = new StringContent("{\"type\": \"message\", \"text\": \"I come from teams\", \"from\": {\"id\": \"bot@somthing\", \"name\": \"teams\"}}", System.Text.Encoding.UTF8),

            };
            request.Content.Headers.ContentType.MediaType = "application/json";
            request.Headers.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.Add("Authorization", "Bearer " + myToken);
            var my2Response = await myClient.SendAsync(request).ConfigureAwait(false);
            my2Response.EnsureSuccessStatusCode();
            var myResponseBody = await my2Response.Content.ReadAsStringAsync().ConfigureAwait(false);

编辑

我使用的令牌是从这里生成的:https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token

【问题讨论】:

    标签: c# azure post botframework bots


    【解决方案1】:

    更改了我的代码,现在它可以工作了:

                HttpClient myClient = new HttpClient();
                myClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                var myToken = token;
                using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://webchat.botframework.com/v3/conversations/ConversationID/activities"))
                {
                    requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", myToken);
                    requestMessage.Content = new StringContent("{\"type\": \"message\", \"text\": \"I come from teams\", \"from\": {\"id\": \"bot@someID\", \"name\": \"teams\"}}", System.Text.Encoding.UTF8, "application/json");
                    var myResponse = await myClient.SendAsync(requestMessage);
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多