OneDrive 2.0 下载文件内容 401 HTTP代码

OneDrive 2.0 Download File content 401 HTTP Code

我创建了一个 Azure AD 应用程序,它可以使用应用程序权限完全访问 (R&W) OneDrive API。 (我的应用程序是一个守护程序应用程序。)这些权限已被授予和批准。

HTTP GET https://{MyTenant}.sharepoint.com/_api/v2.0/drives//root://Document.docx

Returns 200 并且内容包含 JSON 有关文件的信息

GET 2016-12-24T14:15:31.458 请求的 uri:

https://{MyTenant}.sharepoint.com/_api/v2.0/drives//root://Document.docx:/content

2016-12-24T14:15:31.888 StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { X-SharePointHealthScore: 0 SPRequestGuid: c935c49d-a0fa-3000-a357-32b18090ecd4 request-id: c935c49d-a0fa-3000-a357-32b18090ecd4 Strict-Transport-Security: max-age=31536000 X-FRAME-OPTIONS: SAMEORIGIN SPRequestDuration: 140 SPIisLatency: 1 MicrosoftSharePointTeamServices: 16.0.0.6008 X-Content-Type-Options: nosniff X-MS-InvokeApp: 1; RequireReadOnly Cache-Control: private Date: Sat, 24 Dec 2016 14:15:31 GMT P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI" Server: Microsoft-IIS/8.5 WWW-Authenticate: NTLM X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Content-Length: 16 Content-Type: text/plain; charset=utf-8 } 2016-12-24T14:15:31.888 401 UNAUTHORIZED

我正确添加了授权 header。我创建了一个将文件发送到同一个文档库的上传功能,它也可以正常工作,与删除功能相同。

这个401是什么原因,只有在请求文件的/内容时?我该如何解决这个问题?

我将 JWT 令牌加载到 jwt.io 中:它具有以下角色:"roles":[ "TermStore.ReadWrite.All", "Sites.Manage.All", "TermStore.Read.All", "Sites.Read.All", "Sites.ReadWrite.All", "Sites.FullControl.All" ] 这是怎么回事?请求的 URI 是:https://<myTenantName>.sharepoint.com/_api/v2.0/drives/<myDr‌​iveName>/root:/faas.‌​pptx:/content

当同时使用两种类型的 GET 请求时 GET /drive/items/{item-id}/content GET /drive/root:/{path and filename}:/content -> return 401 Unauthorized

此致,

延斯

不幸的是,这是 OneDrive for Business 和 "app-only" 场景的一个长期 运行 问题。您可以在 https://github.com/OneDrive/onedrive-api-docs/issues/280.

跟踪问题