You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teams Bot发送会议通知时Forbidden异常的排查与解决

Teams Bot发送会议通知返回Forbidden错误的排查与修复

问题背景

使用Visual Studio新版Teams Toolkit创建.Net/C# EchoBot,参考微软官方示例添加向目标用户发送会议通知功能,点击「Send Notification」按钮时触发Forbidden错误。已在应用清单中添加OnlineMeetingNotification.Send.Chat资源特定权限,并通过builder.Configuration配置了App ID与密码。

异常详情

Microsoft.Rest.HttpOperationException: Operation returned an invalid status code 'Forbidden'
   at Microsoft.Bot.Connector.Teams.TeamsOperations.SendMeetingNotificationMessageAsync(String meetingId, MeetingNotificationBase notification, Dictionary`2 customHeaders, CancellationToken cancellationToken)
   at Microsoft.Bot.Connector.Teams.TeamsOperationsExtensions.SendMeetingNotificationAsync(ITeamsOperations operations, String meetingId, MeetingNotificationBase notification, CancellationToken cancellationToken)
   at Microsoft.Bot.Builder.Teams.TeamsInfo.SendMeetingNotificationAsync(ITurnContext turnContext, MeetingNotificationBase notification, String meetingId, CancellationToken cancellationToken)
   at Csbot2.Bot.EchoBot.HandleActions(ITurnContext`1 turnContext, CancellationToken cancellationToken) in C:\Users\x\y\Csbot2\Csbot2\Bot\EchoBot.cs:line 99

可能原因

  • 权限未完成管理员审批:OnlineMeetingNotification.Send.Chat属于资源特定应用权限,必须由租户管理员手动授予,仅在清单中声明无法生效。
  • 身份认证配置错误:MicrosoftAppId或MicrosoftAppPassword与Azure Bot注册信息不匹配,或密码已过期、未启用。
  • Meeting ID无效或无访问权限:使用的会议ID不存在,或Bot未被添加至该会议的成员列表,无发送通知权限。
  • 权限声明格式错误:应用清单中resourcesSpecificPermissions的配置格式不符合Teams要求,比如权限类型未设为Application。

修复方案

  • 确认权限审批状态:
    登录Azure门户,找到对应的Bot注册资源,进入「API权限」页面,检查OnlineMeetingNotification.Send.Chat权限是否已标记为「已授予」(需租户管理员操作)。
  • 验证身份配置:
    核对appsettings.json中的MicrosoftAppId和MicrosoftAppPassword,确保与Azure Bot注册页面的「应用ID」和「客户端密码」完全一致,且密码未过期。
  • 检查会议ID有效性:
    确认发送通知时传入的meetingId是有效的Teams会议ID(可从会议链接中提取),且Bot已被添加为会议成员。
  • 修正权限清单配置:
    确保manifest.json中resourcesSpecificPermissions的配置格式正确:
    "resourcesSpecificPermissions": [
      {
        "name": "OnlineMeetingNotification.Send.Chat",
        "type": "Application"
      }
    ]
    
  • 测试基础API调用:
    用Bot的App ID和密码获取OAuth2令牌,直接调用Teams Graph API发送会议通知,验证是否能成功,排除Bot框架封装层的问题。

内容的提问来源于stack exchange,提问作者HashTable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 03:37:53