Как запросить содержимое файла из папки на сайте sharepoint, используя sharepoint API или Microsoft Graph? - PullRequest
1 голос
/ 05 марта 2020

Мне нужно получить содержимое файла (в данном случае текст, записанный в файле блокнота), который находится на сайте sharepoint. Я узнал, что это можно сделать с помощью Microsoft Graph или API sharepoint. Поскольку ранее я использовал Microsoft Graph API, я бы предпочел сделать это снова. Я уже пытался делать HTTP-запросы GET, используя, на мой взгляд, правильные API, но они почему-то меня не подводили.

Мой опыт работы с API был очень небольшим две недели go, но с тех пор сильно вырос. Я использую Azure приложения Logi c, чтобы сделать запрос API с помощью коннектора HTTP. Я добавил необходимые разрешения приложения API для Microsoft Graph API и Sharepoint API (Sites.ReadAll) в регистрацию приложения, которую я сделал в Azure Active Directory. Первый запрос, который я делаю, - это запрос на токен доступа. Этот запрос прекрасно работает, и я получаю токен доступа. Затем я использую этот токен доступа, чтобы попытаться получить содержимое файла из определенного файла на сайте sharepoint. URL-адрес запроса я скрыл по соображениям конфиденциальности, но он сопоставим с

https://graph.microsoft.com/v1.0/sites/{siteId}/drive/root:/{item-path}

Например:

https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com,kkkkkkkkd-dsdksdkspd-ds5sd65d544,hidzijij-ksdoqkdsnns88/drive/root:/Shared%20Documents/test1/test2/testfile.txt

HTTP get запрос driveItem

И вывод, который я получаю всегда (я искал возможные решения для любой ошибки, которую я совершаю в течение примерно 10 часов), следующий:

Вывод HTTP-запроса

Как я уже говорил, я пробовал разные API в соответствии с документацией Microsoft для API Graph и API-интерфейса sharepoint по этому поводу (https://docs.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0), но похоже, никто не работает. Я понятия не имею, какую ошибку я совершаю, поэтому, если у кого-то есть подсказка, я был бы очень рад, если бы вы могли помочь! : D

PS: Сайт sharepoint с его папками создан мной с той же учетной записью Microsoft, с которой я вошел в систему на Azure, так что это не может быть проблемой.

Ответы [ 2 ]

1 голос
/ 06 марта 2020

При использовании приложений Logi c гораздо проще подключиться к SharePoint с помощью прилагаемого соединителя: https://docs.microsoft.com/en-us/azure/connectors/connectors-create-api-sharepoint

Что касается API Graph, похоже, вам может понадобиться используйте обходной путь: Возврат содержимого файла загрузки Microsoft Graph 404

0 голосов
/ 08 марта 2020

Некоторое время назад я делал нечто подобное.

Шаблон URI, который я использовал, был:

https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{drive-item-id}/content

Это должен быть запрос GET, очевидно, и не забудьте токен на предъявителя в заголовке Authorization.

Обратите внимание, что в своем запросе вы не указали /content, что означает, что вы получите метаданные файла, а не его байты.

Кроме того, обратите внимание, что в Microsoft Graph Docs Похоже, что для загрузки файла с сайта SharePoint вам необходимо знать его идентификатор элемента диска (вместо этого в качестве допустимого параметра указан путь, поэтому я не уверен, возможно ли это) ..)

Удачи

...