Создание ссылки для доступа к ресурсу DriveItem
Используя действие createLink, вы можете поделиться ресурсом DriveItem с помощью ссылки для совместного доступа.
Действие createLink создает ссылку для совместного доступа, если ссылка указанного типа еще не существует для приложения, совершающего вызов. Если для приложения уже создана такая ссылка указанного типа, возвращается она.
Ресурсы DriveItem наследуют разрешения совместного доступа от своих предков.
Разрешения
Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Тип разрешения | Разрешения (в порядке повышения привилегий) |
---|---|
Делегированные (рабочая или учебная учетная запись) | Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Files.ReadWrite, Files.ReadWrite.All |
Для приложений | Files.ReadWrite.All, Sites.ReadWrite.All |
HTTP-запрос
POST /drives/{driveId}/items/{itemId}/createLink
POST /groups/{groupId}/drive/items/{itemId}/createLink
POST /me/drive/items/{itemId}/createLink
POST /sites/{siteId}/drive/items/{itemId}/createLink
POST /users/{userId}/drive/items/{itemId}/createLink
Тело запроса
В теле запроса определяются свойства ссылки для совместного доступа, запрашиваемой приложением. Запрос должен быть объектом JSON с указанными ниже свойствами.
Имя | Тип | Описание |
---|---|---|
type | string | Тип создаваемой ссылки для совместного доступа. Возможные значения: view , edit или embed . |
scope | string | Необязательный параметр. Область создаваемой ссылки. Возможные значения: anonymous или organization . |
Типы ссылок
Параметр type может принимать указанные ниже значения.
Значение типа | Описание |
---|---|
view |
Создает ссылку на объект DriveItem, предполагающую доступ только для чтения. |
edit |
Создает ссылку на объект DriveItem, предполагающую доступ для чтения и записи. |
embed |
Создает встраиваемую ссылку на объект DriveItem. Этот вариант доступен только для файлов в личных учетных записях OneDrive. |
Типы областей
Параметр scope может принимать указанные ниже значения. Если параметр scope не задан, создается ссылка того типа, который используется в организации по умолчанию.
Значение | Описание |
---|---|
anonymous |
Любой пользователь со ссылкой обладает правом доступа без необходимости входа в систему. Это также относится к людям вне вашей организации. Администратор может отключить поддержку ссылок, не требующих проверки подлинности. |
organization |
Любой пользователь, вошедший в вашу организацию (клиент), может использовать ссылку для получения доступа. Доступно только в OneDrive для бизнеса и SharePoint. |
Отклик
В случае успешного выполнения этот метод возвращает в тексте ответа один ресурс Permission, представляющий запрашиваемые разрешения для совместного доступа.
Если для элемента создается новая ссылка совместного доступа, возвращается код ответа 201 Created
, а если возвращается существующая ссылка — код 200 OK
.
Пример
В приведенном ниже примере запрашивается создание ссылки для совместного доступа к объекту DriveItem, указанному по {itemId}, в хранилище OneDrive пользователя. Ссылка для совместного доступа подразумевает доступ только для чтения, и ее может использовать каждый, кому она предоставлена.
Запрос
POST /me/drive/items/{item-id}/createLink
Content-type: application/json
{
"type": "view",
"scope": "anonymous"
}
Отклик
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "123ABC",
"roles": ["write"],
"link": {
"type": "view",
"scope": "anonymous",
"webUrl": "https://1drv.ms/A6913278E564460AA616C71B28AD6EB6",
"application": {
"id": "1234",
"displayName": "Sample Application"
},
}
}
Создание ссылок с возможностью общего доступа в компании
OneDrive для бизнеса и SharePoint поддерживают ссылки с возможностью общего доступа в компании.
Они аналогичны ссылкам, не требующим проверки подлинности, но работают только для элементов соответствующей организации.
Чтобы создать такую ссылку, задайте для параметра scope значение organization
.
Запрос
POST /me/drive/items/{item-id}/createLink
Content-Type: application/json
{
"type": "edit",
"scope": "organization"
}
Ответ
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "123ABC",
"roles": ["write"],
"link": {
"type": "edit",
"scope": "organization",
"webUrl": "https://contoso-my.sharepoint.com/personal/ellen_contoso_com/...",
"application": {
"id": "1234",
"displayName": "Sample Application"
},
}
}
Создание встраиваемых ссылок
При использовании типа ссылки embed
возвращаемое значение webUrl можно внедрять в элемент HTML <iframe>
.
При создании встроенной ссылки свойство webHtml
содержит HTML-код для объекта <iframe>
, в котором размещается содержимое.
Примечание. Внедрение ссылок поддерживается только в личных учетных записях OneDrive.
Запросить
POST /me/drive/items/{item-id}/createLink
Content-Type: application/json
{
"type": "embed"
}
Отклик
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "123ABC",
"roles": ["read"],
"link": {
"type": "embed",
"webHtml": "<IFRAME src=\"https://onedrive.live.com/...\"></IFRAME>",
"webUrl": "https://onedive.live.com/...",
"application": {
"id": "1234",
"displayName": "Sample Application"
},
}
}
Примечания
- Срок действия ссылок, созданных с помощью этого действия, не истекает при условии, что в организации не включена политика срока действия.
- Ссылки отображаются в разрешениях на совместное использование для элемента и могут быть удалены владельцем элемента.
- Они всегда указывают на текущую версию элемента, если он не был извлечен (только в SharePoint).