c# - 在 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)
谢谢。
解决方案
每当用户主动阻止机器人联系人(例如,右键单击 Teams 中的联系人或应用程序 ->“阻止”)时,都会返回消息“操作返回无效状态代码 'Forbidden'”。在这种情况下,Azure 门户中的频道日志也应该报告消息:“用户阻止了与机器人的对话”。
消息“操作返回无效状态代码'BadRequest'”更难解决;根据我的经验,它通常与 Teams 频道不支持的某些有效负载有关:例如,AdaptiveCard 中不受支持的属性,或 OpenUrl 操作中格式不正确的 URL。我的建议是使用 App Studio Teams 应用程序中的卡片编辑器测试任何 AdaptiveCard 内容,然后再将其发布到真实对话中。否则,找出导致问题的原因可能会非常棘手。
推荐阅读
- javascript - Uncaught TypeError: recognition.addEventListener is not a function?JS语音识别错误
- bash - 通过在文件前面添加时间戳来重命名目录和子目录中的文件
- multiprocessing - Does pypy work with the multiprocessing module?
- javascript - List PDF files from directory in front-end, and allow user to click a file and send in email?
- javascript - 从 reactjs 中的本地存储中删除项目
- firebase - 在多个文件中排列 FireStore 云函数
- flutter - Flutter 中 StatefulWidgets 的用途?
- html - 是否有类似于图标库的图像库?
- sql - 为什么还要在 Golang 中使用 *DB.exec() 或准备好的语句?
- xaml - XamarinForms 异常