Enviar una invitación para uso compartido

Espacio de nombres: microsoft.graph

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, les envía un correo electrónico con un vínculo de uso compartido.

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

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json. Obligatorio.

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) Una colección de los destinatarios que recibirán acceso y la invitación para uso compartido.
message String Un mensaje con formato de texto sin formato que se incluye en la invitación para uso compartido. La longitud máxima es de 2000 caracteres.
requireSignIn Booleano Especifica si el destinatario de la invitación debe iniciar sesión para ver el elemento compartido.
sendInvitation Boolean Si esto es así, se envía un vínculo de uso compartido al destinatario. En caso contrario, se otorga un permiso directamente sin enviar ninguna notificación.
roles Collection(String) Especifica los roles que se concederán 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. Opcional y solo 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.com" 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/v1.0/me/drive/items/{item-id}/invite
Content-type: application/json

{
  "recipients": [
    {
      "email": "ryan@contoso.com"
    }
  ],
  "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"
    }
  ]
}

Comentarios

Respuestas de error

Lea el tema Respuestas de error para obtener más información sobre la manera en que se devuelven los errores.