Enviar una invitación para uso compartido
Espacio de nombres: microsoft.graph
Importante
Las API de la versión /beta
de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.
Envía una invitación para compartir para un driveItem. Una invitación para uso compartido proporciona permisos a los destinatarios y, de forma opcional, envía un correo electrónico a los destinatarios para notificarles que se ha compartido el elemento.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
Servicio global | Gobierno de EE. UU. L4 | Us Government L5 (DOD) | China operada por 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Permissions
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso | Permisos con privilegios mínimos | Permisos con privilegios más altos |
---|---|---|
Delegado (cuenta profesional o educativa) | Files.ReadWrite | Files.ReadWrite.All, Sites.ReadWrite.All |
Delegado (cuenta personal de Microsoft) | Files.ReadWrite | Files.ReadWrite.All |
Aplicación | Files.ReadWrite.All | Sites.ReadWrite.All |
Solicitud 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
Cuerpo de la solicitud
En el cuerpo de la solicitud, proporcione un objeto JSON con los siguientes parámetros.
{
"requireSignIn": false,
"sendInvitation": false,
"roles": [ "read | write"],
"recipients": [
{ "@odata.type": "microsoft.graph.driveRecipient" },
{ "@odata.type": "microsoft.graph.driveRecipient" }
],
"message": "string"
}
Parámetro | Tipo | Descripción |
---|---|---|
destinatarios | Collection(driveRecipient) | Colección de destinatarios que reciben acceso y la invitación para compartir. |
message | String | Un mensaje con formato de texto sin formato que se incluye en la invitación para uso compartido. Longitud máxima de 2000 caracteres. |
requireSignIn | Boolean | Especifica si el destinatario de la invitación debe iniciar sesión para ver el elemento compartido. |
sendInvitation | Boolean | Especifica si se genera un correo electrónico o una publicación (false) o si el permiso se ha creado recientemente (true). |
roles | Collection(String) | Especifica los roles que se conceden a los destinatarios de la invitación para compartir. |
expirationDateTime | DateTimeOffset | Especifica la fecha y hora después de la cual expira el permiso. Para OneDrive para la Empresa y SharePoint, xpirationDateTime solo es aplicable para los permisos sharingLink. Disponible en OneDrive para la Empresa, SharePoint y cuentas de OneDrive personales premium. |
password | String | Contraseña establecida en la invitación por el creador. Solo opcional y OneDrive Personal |
retainInheritedPermissions | Booleano | Opcional. Si true es (valor predeterminado), los permisos heredados existentes se conservan en el elemento compartido al compartir este elemento por primera vez. Si false es , se quitan todos los permisos existentes al compartir por primera vez. |
Ejemplo
En este ejemplo se envía una invitación para compartir a un usuario con la dirección de correo electrónico "ryan@contoso.org" con un mensaje sobre un archivo en el que se está colaborando. La invitación concede a Ryan acceso de lectura y escritura al archivo.
Solicitud HTTP
Si se ejecuta correctamente, este método devuelve el código de respuesta 200 OK
y el objeto de colección permission en el cuerpo de la respuesta.
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"
}
Respuesta
En el ejemplo siguiente se muestra la respuesta.
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"
}
]
}
Respuesta de éxito parcial
Al invitar a varios destinatarios, es posible que la notificación se realice correctamente para algunos y que se produzca un error para otros.
En este caso, el servicio devuelve una respuesta de éxito parcial con un código de estado HTTP de 207.
Cuando se devuelve el éxito parcial, la respuesta de cada destinatario con errores contiene un error
objeto con información sobre qué se produjo un error y cómo corregirlo.
En el ejemplo siguiente se muestra la respuesta parcial.
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"
}
]
}
Errores de SendNotification
A continuación se muestran otros errores que la aplicación podría encontrar dentro de los objetos anidados innererror
cuando se produce un error al enviar la notificación.
Las aplicaciones no son necesarias para controlar estos errores.
Código | Descripción |
---|---|
accountVerificationRequired | La comprobación de la cuenta es necesaria para desbloquear el envío de notificaciones. |
hipCheckRequired | Necesita resolver hip (prevención de intrusiones de host) comprobar para desbloquear el envío de notificaciones. |
exchangeInvalidUser | No se encontró el buzón del usuario actual. |
exchangeOutOfMailboxQuota | Fuera de la cuota. |
exchangeMaxRecipients | Se ha superado el número máximo de destinatarios que se pueden enviar notificaciones al mismo tiempo. |
Nota: El servicio puede agregar nuevos códigos de error o dejar de devolver los antiguos en cualquier momento.
Comentarios
-
Las unidades con un driveType de
personal
(OneDrive personal) no pueden crear ni modificar permisos en el DriveItem raíz. - Para obtener una lista de los roles disponibles, vea Roles property values (Valores de propiedad de roles).
Respuestas de error
Lea el tema Respuestas de error para obtener más información sobre cómo se devuelven los errores.