2017-01-31 3 views
0

Я создал приложение Azure AD, имеющее полный доступ (R & W) к API OneDrive, используя разрешения приложений. (мое приложение является приложением daemon.) Эти разрешения предоставляются &.OneDrive 2.0 Загрузить содержимое файла 401 Код HTTP

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

Возвращает 200 и содержание содержит JSON информацию о файле

ПОЛУЧИТЬ 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 

Я добавил заголовок авторизации правильно. Я создал функцию загрузки, которая отправляет файл в ту же библиотеку документов, и это работает правильно, так же, как и в функции «Удалить».

В чем причина этого 401, только при запросе/содержании файла? Как я могу устранить эту проблему?

Я загрузил токен JWT в jwt.io: Он имеет следующие роли: «Роли»: [ "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/диска/элементы/{пункт-ид}/содержание GET /drive/root:/{path and filename}:/content -> return 401 Unauthorized

С наилучшими пожеланиями,

Jens

ответ

0

Это, к сожалению, долговременная проблема с OneDrive для бизнеса и сценарии «только для приложений». Вы можете отслеживать этот вопрос на https://github.com/OneDrive/onedrive-api-docs/issues/280.

+0

Благодарим за отзыв. При попытке загрузить файл с использованием API-интерфейса SharePoint REST я сначала получил веб-сайт: https: // {myTenantName} .sharepoint.com/_layouts/15/WopiFrame.aspx? Sourcedoc =% 7BB2CE1848-1FB6-4D7C-B0D9 -B4DB8D08D910% 7D и файл = faas.pptx и действие = по умолчанию правильно ли выполнить GET на следующий ресурс: https: // {myTenantName} .sharepoint.com/_api/веб/GetFileByServerRelativeUrl ('faas.pptx')/$ value Файл находится в библиотеке документов в корневой папке арендатора. – Jens

+0

Ничего. Я нашел правильный синтаксис, изучив API SharePoint. Спасибо @Brad за то, что указал мне в правильном направлении! – Jens

Смежные вопросы