Отправка приглашения к совместному использованию
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Отправляет приглашение на общий доступ для элемента driveItem. Приглашение к совместному использованию предоставляет получателям разрешения и при необходимости отправляет им на электронную почту уведомления, что к элементу был предоставлен общий доступ.
Этот 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-запрос
POST /drives/{drive-id}/items/{item-id}/invite
POST /groups/{group-id}/drive/items/{item-id}/invite
POST /me/drive/items/{item-id}/invite
POST /sites/{siteId}/drive/items/{itemId}/invite
POST /users/{userId}/drive/items/{itemId}/invite
Текст запроса
В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.
{
"requireSignIn": false,
"sendInvitation": false,
"roles": [ "read | write"],
"recipients": [
{ "@odata.type": "microsoft.graph.driveRecipient" },
{ "@odata.type": "microsoft.graph.driveRecipient" }
],
"message": "string"
}
Параметр | Тип | Описание |
---|---|---|
recipients | Collection(driveRecipient) | Коллекция получателей, получающих доступ и приглашение общего доступа. |
message | String | Сообщение с обычным форматированным текстом, включенное в приглашение на доступ. Максимальная длина 2000 символов. |
requireSignIn | Boolean | Указывает, куда должен зайти получатель приглашения, чтобы просмотреть элемент, к которому предоставлен общий доступ. |
sendInvitation | Boolean | Указывает, создается ли сообщение электронной почты или публикация (false) или если разрешение создано недавно (true). |
roles | Collection(String) | Указывает роли, предоставляемые получателям приглашения на общий доступ. |
expirationDateTime | DateTimeOffset | Указывает дату и время, по истечении которого истекает срок действия разрешения. Для OneDrive для бизнеса и SharePoint xpirationDateTime применяется только для разрешений sharingLink. Доступно для OneDrive для бизнеса, SharePoint и личных учетных записей OneDrive уровня "Премиум". |
password | Строка | Пароль, заданный в приглашении создателем. Необязательный и только OneDrive Personal |
retainInheritedPermissions | Boolean | Необязательное свойство. Если true (по умолчанию) все существующие унаследованные разрешения сохраняются для общего элемента при первом предоставлении общего доступа к этому элементу. Если false задано значение , все существующие разрешения удаляются при первом предоставлении общего доступа. |
Пример
В этом примере пользователю отправляется приглашение на общий доступ с адресом электронной почты "ryan@contoso.org" с сообщением о совместном использовании файла. Приглашение предоставляет пользователю Ryan доступ для чтения и записи к файлу.
HTTP-запрос
При успешном выполнении этот метод возвращает код ответа 200 OK
и объект коллекции permission в теле ответа.
POST https://graph.microsoft.com/beta/me/drive/items/{item-id}/invite
Content-type: application/json
{
"recipients": [
{
"email": "robin@contoso.org"
}
],
"message": "Here's the file that we're collaborating on.",
"requireSignIn": true,
"sendInvitation": true,
"roles": [ "write" ],
"password": "password123",
"expirationDateTime": "2018-07-15T14:00:00.000Z"
}
Отклик
Ниже показан пример отклика.
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"@deprecated.GrantedTo": "GrantedTo has been deprecated. Refer to GrantedToV2",
"grantedTo": {
"user": {
"displayName": "Robin Danielsen",
"id": "42F177F1-22C0-4BE3-900D-4507125C5C20"
}
},
"grantedToV2": {
"user": {
"id": "42F177F1-22C0-4BE3-900D-4507125C5C20",
"displayName": "Robin Danielsen"
},
"siteUser": {
"id": "1",
"displayName": "Robin Danielsen",
"loginName": "Robin Danielsen"
}
},
"hasPassword": true,
"id": "CCFC7CA3-7A19-4D57-8CEF-149DB9DDFA62",
"invitation": {
"email": "robin@contoso.com",
"signInRequired": true
},
"roles": [ "write" ],
"expirationDateTime": "2018-07-15T14:00:00.000Z"
}
]
}
Частичный ответ на успех
При приглашении нескольких получателей уведомление может быть успешным для одних и сбоем для других.
В этом случае служба возвращает частичный ответ на успешное выполнение с кодом состояния HTTP 207.
При частичном успешном выполнении ответ для каждого неудавшихся получателей содержит error
объект со сведениями о том, что пошло не так и как это исправить.
В следующем примере показан частичный ответ.
HTTP/1.1 207 Multi-Status
Content-type: application/json
{
"value": [
{
"grantedTo": {
"user": {
"displayName": "Helga Hammeren",
"id": "5D8CA5D0-FFF8-4A97-B0A6-8F5AEA339681"
}
},
"id": "1EFG7CA3-7A19-4D57-8CEF-149DB9DDFA62",
"invitation": {
"email": "helga@contoso.com",
"signInRequired": true
},
"roles": [ "write" ],
"error": {
"code":"notAllowed",
"message":"Account verification needed to unblock sending emails.",
"localizedMessage": "Kontobestätigung erforderlich, um das Senden von E-Mails zu entsperren.",
"fixItUrl":"http://g.live.com/8SESkydrive/VerifyAccount",
"innererror":{
"code":"accountVerificationRequired"
}
}
},
{
"grantedTo": {
"user": {
"displayName": "Robin Danielsen",
"id": "42F177F1-22C0-4BE3-900D-4507125C5C20"
}
},
"id": "CCFC7CA3-7A19-4D57-8CEF-149DB9DDFA62",
"invitation": {
"email": "robin@contoso.com",
"signInRequired": true
},
"roles": [ "write" ],
"expirationDateTime": "2018-07-15T14:00:00.000Z"
}
]
}
Ошибки SendNotification
Ниже приведены некоторые другие ошибки, с которыми приложение может столкнуться во вложенных innererror
объектах при сбое отправки уведомления.
Приложения не требуются для обработки этих ошибок.
Код | Описание |
---|---|
accountVerificationRequired | Чтобы разблокировать отправку уведомлений, требуется проверка учетной записи. |
hipCheckRequired | Необходимо решить проверка hip (защита от вторжений узла), чтобы разблокировать отправку уведомлений. |
exchangeInvalidUser | Почтовый ящик текущего пользователя не найден. |
exchangeOutOfMailboxQuota | Превышена квота. |
exchangeMaxRecipients | Превышено максимальное число получателей, которым можно одновременно отправлять уведомления. |
Примечание: Служба может добавить новые коды ошибок или прекратить возврат старых в любое время.
Замечания
-
Диски с типом driveType
personal
(oneDrive personal) не могут создавать или изменять разрешения на корневой элемент DriveItem. - Список доступных ролей см. в разделе Значения свойств ролей.
Ответы с ошибками
Дополнительные сведения о том, как возвращаются ошибки, см. в разделе Ответы на ошибки.