Доступ к общим элементам DriveItem
Пространство имен: microsoft.graph
Вы можете получить доступ к общим элементам DriveItem или коллекции общих элементов, используя параметр shareId или URL-адрес для совместного доступа.
Чтобы использовать URL-адрес для совместного доступа с этим API, вашему приложению необходимо преобразовать URL-адрес в токен общего доступа.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Files.ReadWrite | Files.ReadWrite.All, Sites.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Files.ReadWrite | Files.ReadWrite.All |
Приложение | Files.ReadWrite.All | Sites.ReadWrite.All |
HTTP-запрос
GET /shares/{shareIdOrEncodedSharingUrl}
Параметры пути
Имя параметра | Значение | Описание |
---|---|---|
shareIdOrEncodedSharingUrl | string |
Обязательно. Маркер общего доступа, возвращенный API, или правильно закодированный URL-адрес для общего доступа. |
Кодирование URL-адресов для общего доступа
Чтобы закодировать URL-адрес для общего доступа, используйте следующую логику:
- Для начала примените к URL-адресу кодировку base64.
- Преобразуйте результат из кодировки base64 в недополненный формат base64url, удалив символы
=
в конце значения и заменив/
символом_
, а+
— символом-
.) - Добавьте
u!
в начало строки.
Пример кодирования URL-адреса на языке C#:
string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');
Заголовки запросов
Имя | Описание |
---|---|
Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Content-Type | application/json. Обязательный параметр. |
Prefer | Необязательный параметр. Строка. Задайте одно из описанных prefer ниже значений. |
Предпочитать значения заголовка
Имя | Описание |
---|---|
redeemSharingLink | Если shareIdOrEncodedSharingUrl является ссылкой для общего доступа, предоставьте вызывающему объекту устойчивый доступ к элементу. |
redeemSharingLinkIfNecessary | То же самое, что и redeemSharingLink, но доступ гарантируется только на время выполнения этого запроса. |
redeemSharingLink следует рассматривать как эквивалентный вызывающей ссылке, перейдя по ссылке общего доступа в браузере (принимая жест общего доступа), в то время как функция redeemSharingLinkIfNecessary предназначена для сценариев, в которых намерение заключается в том, чтобы просто просмотреть метаданные ссылки.
Ответ
При успешном выполнении этот метод возвращает код отклика 200 OK
и ресурс sharedDriveItem в тексте отклика.
Пример
Запрос
В следующем примере показан запрос на получение общего элемента:
GET /shares/{shareIdOrEncodedSharingUrl}
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "B64397C8-07AE-43E4-920E-32BFB4331A5B",
"name": "contoso project.docx",
"owner": {
"user": {
"id": "98E88F1C-F8DC-47CC-A406-C090248B30E5",
"displayName": "Ryan Gregg"
}
}
}
Прямой доступ к общему элементу
Хотя SharedDriveItem содержит некоторые полезные сведения, большинство приложений хотят получить прямой доступ к общему объекту DriveItem. Ресурс SharedDriveItem включает связи корневых элементов и элементов, которые могут получать доступ к содержимому в область общего элемента.
Пример (один файл)
Запрос
При запросе связи driveItem будет возвращен элемент DriveItem, к которому предоставлен общий доступ.
GET /shares/{shareIdOrUrl}/driveItem
Отклик
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "contoso project.docx",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"file": {},
"size": 109112
}
Пример (общая папка)
Запрос
При запросе связи driveItem и расширении коллекции children будет возвращен элемент DriveItem, к которому предоставлен общий доступ, а также файлы, содержащиеся в общей папке.
GET /shares/{shareIdOrUrl}/driveItem?$expand=children
Отклик
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "Contoso Project",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"folder": {},
"size": 10911212,
"children": [
{
"id": "AFBBDD79-868E-452D-AD4D-24697D4A4044",
"name": "Propsoal.docx",
"file": {},
"size": 19001
},
{
"id": "A91FE90A-2F2C-4EE6-B412-C4FFBA3F71A6",
"name": "Update to Proposal.docx",
"file": {},
"size": 91001
}
]
}
Ответы с ошибками
Дополнительные сведения о том, как возвращаются ошибки, см. в статье Ответы на ошибки.
Замечания
- Для OneDrive для бизнеса и SharePoint API общих папок всегда требует проверки подлинности и не может использоваться для анонимного доступа к содержимому без контекста пользователя.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по