Мое приложение использует client_credentials и успешно использует Graph API для большинства вызовов.

Однако я пытался получить изображения из папки sharepoint по пути и имени файла:

https://graph.microsoft.com/v1.0/drive/root:/sites/folder1/folder2/folder3/folder4/photo.jpg

Устанавливаются соответствующие заголовки (авторизация и принятие).

httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + session["access_token"]);
httpClient.DefaultRequestHeaders.Add("accept", "application/json; odata.metadata=minimal");

Запрос возвращает ответ 404 - не найден.

Когда я перехожу на наш сайт sharepoint, я вижу изображение в порядке, поэтому могу только предположить, что путь к файлу правильный:

https://ourcompany.sharepoint.com/sites/folder1/folder2/folder3/folder4/photo.jpg

Приносим извинения, но я новичок в Graph API и не могу найти ничего, что ссылается на это в документации:

https://docs.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0

Путь
/ меня / диск / корень: / путь / к / файлу

Ресурс Доступ к DriveItem по пути относительно корневой папки OneDrive пользователя.

Нужны ли для этого специальные разрешения? Я обнаружил, что на портале Azure могут потребоваться разрешения, но это связано с активным каталогом Azure, и я не уверен, повлияет ли это на API-интерфейс графа, поскольку он работал нормально, считывая диски и элементы дисков в sharepoint (с помощью диска id и идентификатор элемента диска, а не путь к файлу).

РЕДАКТИРОВАТЬ: вошел в лазурный портал, добавил разрешения Graph API для приложения:

  • Сайт: ReadAll
  • Каталог: ReadAll
  • Файл: ReadAll

Пока без изменений.

1
RoToQ 5 Мар 2019 в 16:33

1 ответ

Лучший ответ

site содержит drive, поэтому вы ссылаетесь на вещи в неправильном порядке. Чтобы получить DriveItem с диска сайта, вам нужно следующее:

/sites/{siteId}/drive/root:/folder1/folder2/folder3/folder4/photo.jpg

Если вы хотите скачайте DriveItem вместо того, чтобы просто получать метаданные, вам понадобится следующее:

/sites/{siteId}/drive/root:/folder1/folder2/folder3/folder4/photo.jpg:/content
2
Marc LaFleur 5 Мар 2019 в 16:12