Мы пытаемся реализовать интеграцию между веб-приложением и SharePoint Online с помощью API-интерфейсов API Microsoft Graph.Загрузите файл на диск SharePoint с помощью Microsoft Graph
В частности, нам необходимо загрузить файл в библиотеку документов конкретного документа SharePoint (диск), отличную от текущего диска по умолчанию для пользователя. Мы получаем маркер доступа через Azure AD с доступом ко всем файлам.
Мы можем загружать файлы на любой диск, используя /v1.0/me/drive/...
, но не тогда, когда мы используем другой диск.
Например:
var response = client.PutAsync(graphResourceUrl +
"/beta/sharepoint/sites/" + siteCollSiteId +
"/lists/" + listId +
"/drive/root/children/" + fileName + ":/content",
new ByteArrayContent(fileBytes)).Result;
var response = client.PutAsync(graphResourceUrl +
"/beta/drives/" + "/" + listId +
"/items/" + siteCollSiteId + "/" + fileName + ":/content",
new ByteArrayContent(fileBytes)).Result;
var response = client.PutAsync(graphResourceUrl +
"/beta/drives/" + listId + "/" + fileName + ":/content",
new ByteArrayContent(fileBytes)).Result;
Оба /v1.0
и /beta
(в случае SharePoint, содержащего путь) мы получаем ответ ошибки Not Implemented
.
Что мы можем делать неправильно? Разве это еще не работает с Microsoft Graph (кроме /me
)?
WHI вы запросили? Вам нужно иметь «Sites.ReadWrite.All» для доступа к библиотекам документов вне диска пользователя по умолчанию. –
Спасибо @ ryan-gregg, да, мы используем это разрешение для Graph в приложении Azure AD, его отображаются как «Чтение и запись файлов во всех семействах сайтов (предварительный просмотр)». С уважением, Дэнфер. – danfer