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

调用Microsoft Graph API发送频道消息时遇401未授权错误

问题排查方案

1. 权限与上下文不匹配是核心问题

  • 该接口在非导入场景下仅支持委派权限(如ChannelMessage.Send),你当前用的是仅应用权限上下文,但这种模式只允许在导入场景使用。如果是普通发送消息,必须切换为用户委派的身份认证流程(比如OAuth授权码流),而非客户端凭证流(仅应用模式)。
  • 若确实是导入场景,需确认已申请ChannelMessage.Send.All应用权限,同时请求必须添加Prefer: include-unknown-enum-members请求头,且消息体里要包含createdDateTime和from字段(模拟历史消息导入)。

2. 重新核对权限配置细节

  • 委派权限需确认已完成管理员同意(企业租户)或用户授权(个人租户),且权限已添加到Azure AD应用注册的「API权限」列表中。
  • 应用权限仅在导入场景生效,必须是ChannelMessage.Send.All,其他类似权限无法满足要求,且必须完成管理员同意流程。

3. 验证请求上下文标识

  • 普通发送场景:token中应包含scp声明(委派权限标识),而非roles声明(应用权限标识),确保是以具体用户身份发起请求。
  • 导入场景:需确认团队和频道已启用导入状态(通常需通过Microsoft 365导入工具或特定流程开启)。

4. 检查请求格式是否合规

  • 非导入场景:无需添加Prefer请求头,消息体按常规格式构造即可(比如仅包含body字段)。
  • 导入场景:必须携带Prefer: include-unknown-enum-members头,消息体需指定createdDateTime(历史时间)、from(用户信息),且messageType设为message。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:52:03