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

使用POST方法调用MS Graph创建SharePoint文件夹时出现401错误

问题核心原因定位

你遇到的401错误核心是报错信息里的Access token is empty,即请求携带的访问令牌为空,按以下步骤排查即可解决:

排查&解决步骤

  1. 校验令牌获取逻辑的异常处理
    你当前的getToken函数在捕获错误时直接返回Error对象,调用侧没有做返回值校验:如果令牌获取环节出错,你拿到的authRes是Error实例,不存在accessToken属性,传入请求就会出现空令牌问题。
    修改调用侧代码,先校验令牌是否正常返回:
const authRes = await getToken()
// 新增校验逻辑
if (!authRes?.accessToken) {
  console.error("令牌获取失败:", authRes)
  return
}

同时打开getToken里注释掉的accessToken打印逻辑,确认能正常获取到非空的令牌字符串。

  1. 校验Scope配置正确性
    你当前的Scope是拼接生成的,需要确认环境变量GRAPH_ENDPOINT的末尾是否带斜杠:
  • 正确的Scope应为https://graph.microsoft.com/.default
  • 如果GRAPH_ENDPOINT末尾没有斜杠,拼接出来的错误Scope为https://graph.microsoft.com.default,会导致令牌获取失败
    直接打印process.env.GRAPH_ENDPOINT + ".default"确认格式是否正确即可。
  1. 校验Azure AD应用权限配置
  • 首先修正权限名拼写错误:你提到的Sites.ReadWright.All拼写错误,正确权限名为Sites.ReadWrite.All,如果配置时写错了权限名会导致权限无效
  • 确认配置的是应用权限而非委托权限:你使用的客户端凭证流只支持应用权限,选委托权限不会生效
  • 确认已经点击「授予管理员同意」按钮:仅添加权限未给租户授权的话,权限不会生效
  1. 校验请求头格式正确性
    确认你的makeRequest函数中,令牌是按Authorization: Bearer ${accessToken}的格式放入请求头的:如果遗漏了Bearer 前缀,或者字段名拼写错误,都会被Graph API识别为空/无效令牌。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:06:03