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 falsees , 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

Respuestas de error

Lea el tema Respuestas de error para obtener más información sobre cómo se devuelven los errores.