首页 > 解决方案 > 在 MS 团队 Bot 框架中发送通知时出现错误请求并被禁止

问题描述

我正在向大约 50k 用户发送通知,我注意到两个不同的错误正在为极少数用户登录错误日志。

这两个错误是

Operation returned an invalid status code 'Forbidden'

Operation returned an invalid status code 'BadRequest'

我无法理解为什么只有少数用户会出现此错误。

我尝试了一种方法,我阻止了我的机器人并向自己发送通知,然后Forbidden记录了错误。

在向用户发送消息时发生这两个错误是否还有其他原因。

编辑: - 禁止错误 at Microsoft.Bot.Connector.Conversations.SendToConversationWithHttpMessagesAsync(String conversationId, Activity activity, Dictionary 2 customHeaders, CancellationToken cancellationToken)at Microsoft.Bot.Connector.ConversationsExtensions.SendToConversationAsync(IConversations operations, String conversationId, Activity activity, CancellationToken cancellationToken)

对于 BadRequest:- at Microsoft.Bot.Connector.Conversations.CreateConversationWithHttpMessagesAsync(ConversationParameters parameters, Dictionary2 customHeaders, CancellationToken cancellationToken) at Microsoft.Bot.Connector.ConversationsExtensions.CreateConversationAsync(IConversations operations, ConversationParameters parameters, CancellationToken cancellationToken)

谢谢。

标签: c#botframeworkmicrosoft-teams

解决方案


  1. 每当用户主动阻止机器人联系人(例如,右键单击 Teams 中的联系人或应用程序 ->“阻止”)时,都会返回消息“操作返回无效状态代码 'Forbidden'”。在这种情况下,Azure 门户中的频道日志也应该报告消息:“用户阻止了与机器人的对话”。

  2. 消息“操作返回无效状态代码'BadRequest'”更难解决;根据我的经验,它通常与 Teams 频道不支持的某些有效负载有关:例如,AdaptiveCard 中不受支持的属性,或 OpenUrl 操作中格式不正确的 URL。我的建议是使用 App Studio Teams 应用程序中的卡片编辑器测试任何 AdaptiveCard 内容,然后再将其发布到真实对话中。否则,找出导致问题的原因可能会非常棘手。


推荐阅读