使用通过open id connect protocol获取的访问令牌调用图api,https://graph.microsoft.com/v1.0/me/drive/root:/foldername时出现以下错误,但是如果我使用相同的令牌来获取https://graph.microsoft.com/v1.0/me API则可以使用,并且我正在搜索的文件夹确实存在于一个驱动器上用于商务,但我仍然收到此错误,当我运行相同的代码一段时间后,我发现它工作正常。可能是什么问题。即使对于这个api https://graph.microsoft.com/v1.0/me/drive/root/children我也会遇到以下错误。
{
"error": {
"code": "UnknownError",
"message": "404 FILE NOT FOUND",
"innerError": {
"request-id": "d7cdf434-ead1-445d-b2be-f269a82027eb",
"date": "2016-07-07T03:38:47"
}
}
}
答案 0 :(得分:1)
如果您最终使用仅限app授权:
正如this answer中所述,目前不支持通过Microsoft Graph API访问OneDrive for Business的应用程序授权,并且会抛出404 FILE NOT FOUND
个例外。
为了解决这个问题,我使用password
grant_type流来请求令牌:
POST https://login.microsoftonline.com/{tenantId}.onmicrosoft.com/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=password
&username=<username>
&password=<password>
&client_id=<clientId>
&client_secret=<clientSecret>
&resource=https://graph.microsoft.com
答案 1 :(得分:0)
当用户没有Office 365 / OneDrive或没有Office 365但未初始化OneDrive(即导航到https://[domain]-my.sharepoint.com/personal/)时,会发生“404 FILE NOT FOUND”错误。
用户获得O365 / OneDrive并对其进行初始化后,您应该能够成功查询https://graph.microsoft.com/v1.0/me/drive/root/children。
您还应该能够查询https://graph.microsoft.com/v1.0/me/drive/root:/foldername
如果您确实遇到了找不到文件夹的合法案例,则会收到以下错误消息:
{
"error": {
"code": "itemNotFound",
"message": "The resource could not be found.",
"innerError": {
"request-id": "1ce2bd8d-a88f-42ae-affd-ee90f3c1d4fb",
"date": "2016-07-11T03:17:25"
}
}
}