Обзор
Я знаком с использованием Microsoft Graph API с возможностью определения файла для обработки элементов в каталоге root if (элементы, в частности папки и файлы ) в Microsoft OneDrive ; создать / удалить / метаданные для Папки и загрузить / удалить / метаданные для Файлы .
Использование Microsoft Graph API снова, я sh, чтобы выполнить те же действия при обработке папок и файлов, создать / удалить / метаданные для папок и загрузить / удалить / метаданные для файлов , в Microsoft SharePoint на диске по умолчанию из root Site как упоминалось ранее для OneDrive .
Проблема
У меня возникли следующие проблемы с Microsoft Graph API при использовании для обработки элементов на диске по умолчанию или root Site:
- Использование идентификатора диска по умолчанию при обработке элементов на диске сайта.
- Создание / удаление / получение метаданных элемента папки на диске сайта по умолчанию.
- Загрузка / Удалить / получить метаданные элемента файла в родительской папке.
Следующий вызов Microsoft Graph API возвращает * 11 12 * диск по умолчанию для сайта * метаданные **:
curl "https://graph.microsoft.com/v1.0/sites/root/drive" \
--request GET \
--verbose \
--write-out 'HTTPSTATUS:%{http_code}' \
--silent \
--header "authorization: Bearer [** ACCESS_TOKEN **]" \
--header "Content-Type: application/json"
JSON Пример ответа:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives/$entity",
"createdDateTime": "2012-06-12T17:27:56Z",
"description": "Share a document with the team by adding it to this document library.",
"id": "b!mWxqgLJ9mESqZI4PrP0Gs-F4hgLaCRlCkVuON4nbwzhkKbcyWdM1Tb5WEzNJ0C60",
"lastModifiedDateTime": "2015-03-03T02:39:56Z",
"name": "Shared Documents",
"webUrl": "https://docusign2com.sharepoint.com/Shared%20Documents",
"driveType": "documentLibrary",
"createdBy": {
"user": {
"displayName": "System Account"
}
},
"lastModifiedBy": {
"user": {
"displayName": "System Account"
}
},
"quota": {
"deleted": 0,
"remaining": 0,
"total": 0,
"used": 0
}
}
Проблема с получением метаданных диска
Принимая незашифрованный идентификатор_диска для текущего диска по умолчанию в root Сайт, [** DRIVE_ID **]
:
"id": "b!mWxqgLJ9mESqZI4PrP0Gs-F4hgLaCRlCkVuON4nbwzhkKbcyWdM1Tb5WEzNJ0C60"
Кодирование идентификатор_драйва , [** URL-Encoded DRIVE_ID **]
:
"id": "b%21mWxqgLJ9mESqZI4PrP0Gs-F4hgLaCRlCkVuON4nbwzhkKbcyWdM1Tb5WEzNJ0C60"
Используя кодированный идентификатор диска , мы можем получить метаданные для этого диска другим способом:
curl "https://graph.microsoft.com/v1.0/sites/root/drives/[** URL-Encoded DRIVE_ID **]" \
--request GET \
--verbose \
--header "authorization: Bearer [** ACCESS_TOKEN **]" \
--header "Content-Type: application/json"
Ответ:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives/$entity",
"createdDateTime": "2012-06-12T17:27:56Z",
"description": "Share a document with the team by adding it to this document library.",
"id": "[** DRIVE_ID **]",
"lastModifiedDateTime": "2015-03-03T02:39:56Z",
"name": "Shared Documents",
"webUrl": "https://docusign2com.sharepoint.com/Shared%20Documents",
"driveType": "documentLibrary",
"createdBy": {
"user": {
"displayName": "System Account"
}
},
"lastModifiedBy": {
"user": {
"displayName": "System Account"
}
},
"quota": {
"deleted": 0,
"remaining": 0,
"total": 0,
"used": 0
}
}
Затем я попытался перечислить элементы на Диске root сайта по умолчанию, добавив / items :
curl "https://graph.microsoft.com/v1.0/sites/root/drives/[** URL-Encoded DRIVE_ID **]/items" \
--request GET \
--verbose \
--header "authorization: Bearer [** ACCESS_TOKEN **" \
--header "Content-Type: application/json"
И это не удалось:
{
"error": {
"code": "invalidRequest",
"message": "The request is malformed or incorrect.",
"innerError": {
"request-id": "0a212014-b386-45d9-9c36-bae2dd6cea8f",
"date": "2020-02-07T06:51:15"
}
}
}
Требуемый путь API
Каков ожидаемый путь для получения списка всех элементов на диске по умолчанию root на root сайте?
Спасибо