Node.js调用Microsoft Graph:获取用户成功但访问OneDrive报404求助
解决Microsoft Graph访问OneDrive返回404的建议
以下是针对你遇到问题的排查方向:
- 替换URL中的占位符:你代码里的
{id}是Graph文档中的占位符,必须替换为实际的用户ID(如123e4567-e89b-12d3-a456-426614174000)或用户的UPN(如user@yourdomain.com),不能直接保留{id}作为URL的一部分。 - 检查权限配置:获取用户列表仅需用户读取类权限,但访问OneDrive需要文件相关权限。确认你在授权请求时已申请
Files.Read、Files.Read.All或对应范围的权限,且如果是应用权限,已获得管理员同意。 - 验证用户OneDrive状态:部分用户(如新创建用户、来宾用户)可能未初始化OneDrive,此时访问其drive会返回404。可先通过Graph Explorer访问该用户的
/users/{id}/drive端点,确认OneDrive已存在。 - 检查令牌权限:解码你的
accessToken,查看其中的scp(委派权限)或roles(应用权限)声明,确认包含访问OneDrive所需的权限范围。 - 区分应用/委派权限模式:如果使用应用权限,确保请求的是用户的drive资源(而非
/me/drive),且权限为应用级权限;如果是委派权限,确保令牌是代表目标用户获取的,而非应用自身的令牌。
修正后的示例代码
// 替换为实际用户ID或UPN const userId = "user@yourdomain.com"; await fetch.callApi(`https://graph.microsoft.com/v1.0/users/${userId}/drive/root/children`, authResponse.accessToken);
内容的提问来源于stack exchange,提问作者Diz
相关产品推荐
相关产品推荐

