我正在尝试从MS OneDrive访问我的文件,但作为回应,它给了我错误"未经授权的访问"。 我已刷新我的访问令牌,该应用程序有效并已注册到MS App Registration Portal。
我查看了互联网并找不到解决方案。
请在github repository找到代码。 需要关注的方法是 authorize()和 accessAndRefreshToken()
另外,我正在使用不同的工具收到不同的错误。
使用Postman时错误是:
]m
即使我已向访问令牌提供了请求,也会显示此错误。
使用onlinecurl.com时:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Bearer access token is empty.",
"innerError": {
"request-id": "729c6cdc-6b9e-4874-b012-5e8bdd2d91da",
"date": "2017-04-11T17:35:47"
}
}
}
这就是我的请求:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "CompactToken validation failed with reason code: -2147184088.",
"innerError": {
"request-id": "3c1f007b-1af8-447a-89c2-eab04bd66d2e",
"date": "2017-04-11T17:34:26"
}
}
}
我尝试使用GET https://graph.microsoft.com/v1.0/me/drive
--header Content-Length: 0
--header Authorization: bearer {access_token}
代替v2.0
和v1.0
代替Bearer
。没有运气。
答案 0 :(得分:1)
您已经有了旧的MSA和现代v2身份验证位的组合。
您tokenUrl
不正确。它应该是https://login.microsoftonline.com/common/oauth2/v2.0/token
。
您也没有请求任何权限范围。最终结果将是一个无法访问任何东西的令牌。您可能至少需要User.Read
和Files.ReadWrite
。
看看Microsoft v2 Endpoint Primer,了解一下。