#sharepoint #microsoft-graph-api
#sharepoint #microsoft-graph-api
Вопрос:
Я пытаюсь отредактировать файл Excel с помощью Microsoft graph API, но я не совсем уверен, как маневрировать с помощью Microsoft graph.
Я знаю, что хотел бы получить идентификатор этого файла, но я не уверен, как получить файлы другого сайта.
То, что я пытаюсь сделать, это перечислить все сайты, получить идентификатор моего целевого сайта, список файлов этого целевого сайта, затем получить идентификатор файла Excel. Извините, я просто слишком перегружен в данный момент, чтобы определить, какие конечные точки мне нужно использовать.
Сначала я попытался выполнить это на python, используя такие пакеты, как O365 и некоторые другие пакеты-оболочки ms graph, но они либо неполны, либо документация не слишком хороша.
Если бы вы могли указать мне правильные конечные точки, которые мне нужно использовать, это действительно очень помогло бы мне.
Комментарии:
1. Вы можете попробовать получить все сайты в вашем клиенте с помощью вызова
https://graph.microsoft.com/v1.0/sites?search=*
, и вы можете выбрать идентификатор для сайта, и если у вас есть файл в библиотеке документов, который вы можете использоватьhttps://graph.microsoft.com/v1.0/sites/{site id}/drives/{Document library id}/root/children
. Попробуйте и дайте мне знать, помогло ли это.2. Чтобы получить идентификатор библиотеки документов или дисков, используйте
https://graph.microsoft.com/v1.0/sites/{site id}/drives
3. спасибо за вашу помощь @Shiva-MSFTIdentity. Я попробую.
4. привет @Shiva-MSFTIdentity У меня просто есть дополнительный вопрос. Теперь я могу получить идентификатор файла файла Excel, который я хотел бы изменить. и теперь, я думаю, мне нужно правильно провести сеанс с ним? конечная точка, которую я могу найти, это graph.microsoft.com/v1.0/me/drive/items {drive-item-id}/рабочая книга/CreateSession. но это, похоже, применимо только в том случае, если файл находится на моем диске, но файл находится на другом.
5. Вы также можете использовать его для файлов sharepoint 🙂 — Пожалуйста, смотрите Мой ответ ниже
Ответ №1:
Вы можете попробовать получить все сайты в вашем клиенте, используя вызов ниже.
https://graph.microsoft.com/v1.0/sites?search=*
и вы можете выбрать идентификатор для сайта, и если у вас есть файл в библиотеке документов, вы можете использовать
https://graph.microsoft.com/v1.0/sites/{site id}/drives/{Document library id}/root/children
Вы можете создать сеанс для рабочей книги не только в onedrive, но и в sharepoint, указав правильный путь.
Поскольку у вас есть идентификатор файла, вы можете использовать приведенный ниже вызов для создания сеанса.
{Path where the file is stored}/Items/{file id}/workbook/createSession
Тело запроса:
{
"persistChanges": true
}
Комментарии:
1. спасибо, Шива. у вас есть ссылка для этой конечной точки? {Путь, в котором хранится файл}/Items/{идентификатор файла}/workbook/CreateSession. Я пытаюсь использовать это, но я не уверен, каков точный синтаксис, а также какая полезная нагрузка должна содержаться при отправке этого запроса
2. В настоящее время я пытаюсь использовать postman и получаю сообщение об ошибке: сбой синтаксического анализа CompactToken с кодом ошибки: 80049217. несмотря на то, что я отправляю правильный токен доступа.
3. У меня уже есть идентификатор сайта и идентификатор файла, а также идентификатор библиотеки документов, но я просто не уверен в синтаксисе API
4. Вот http-вызов
https://graph.microsoft.com/v1.0/sites/soaadteam.sharepoint.com,c1178396-d845-46fa-bc0c-453d2951dad5,19ee9a1e-001d-48f1-9ee8-b0adfde54e45/drives/b!loMXwUXY-ka8DEU9KVHa1R6a7hkdAPFInuiwrf3lTkWmzNPKD2ILQLNdmX03mXTy/Items/01LPJ34YRUWMRB2O2NWNCJM2RYIOAMGKUG/workbook/createSession
и укажите тело запроса, как указано выше, о котором я упоминал{"persistChanges": true}
, выбрав JSON в body в POSTMAN. Ошибка CompactToken — это неправильная проблема с токеном. Пожалуйста, используйте Graph Explorer и попробуйте устранить проблему с токеном.5. спасибо за вашу помощь, Шива, теперь я могу получить файл Excel, а также попытался добавить новый лист. 1 элемент, хотя, когда я тестирую его в ms graphs, он говорит, что не может найти файл, над которым я работаю, но когда я пытаюсь Postman, он выполняет его, как ожидалось.