使用Microsoft OneDrive REST API时遇InvalidAuthenticationToken错误求助
解决Microsoft Graph API调用时的InvalidAuthenticationToken错误(错误码8004920A)
这个CompactToken parsing failed错误其实是在告诉你,你的access token无法被Graph API正确解析,通常和token的格式、目标受众或者请求端点不匹配有关。我来给你梳理几个最常见的排查点:
1. 修正Graph API的端点版本
你当前调用的是https://graph.microsoft.com/v2.0/me/drive/root/delta,但Microsoft Graph并没有v2.0版本——正确的版本是v1.0(稳定版)或者beta(预览版)。把端点改成:
https://graph.microsoft.com/v1.0/me/drive/root/delta
这是很多人容易踩的坑:v2.0是Azure AD授权端点的版本,不是Graph API的版本。
2. 验证access token的受众(aud字段)
用JWT解码工具把你的access token拆解开,查看payload里的aud字段:
- 它必须是
https://graph.microsoft.com,如果是其他值(比如旧的OneDrive API受众),说明你获取token时的配置有问题。 - 同时检查
iss字段,应该是https://login.microsoftonline.com/common/v2.0(因为你用了common租户的v2.0授权端点)。
3. 确认Authorization请求头的格式
调用API时,请求头里的Authorization必须严格遵循Bearer {access_token}的格式:
- 注意
Bearer后面有一个空格,不能写成Bearerer或者漏掉空格。 - 确保token没有被截断、添加额外字符(比如前后的引号)。
4. 检查授权时的Scope是否正确
你获取token时用的onedrive.readwrite是正确的Graph API权限,但要确保你在授权流程中请求的确实是这个scope,没有混用旧的OneDrive REST API的scope(比如旧API的权限是wl.skydrive_update这类)。
按照这几个步骤排查下来,应该能解决这个CompactToken解析失败的问题。
内容的提问来源于stack exchange,提问作者Marcel Gańczak
相关产品推荐
相关产品推荐

