driveItem: invite

Namespace: microsoft.graph

Enviar um convite de compartilhamento para um driveItem. Um convite de compartilhamento fornece permissões aos destinatários e, opcionalmente, envia um email para notificá-los de que o item foi compartilhado.

Importante

  • As permissões não podem ser criadas ou modificadas no driveItem raiz de unidades com um driveType de personal (OneDrive para uso doméstico).
  • Novos convidados não podem ser convidados usando o acesso somente do aplicativo. Os convidados existentes podem ser convidados usando solicitações somente do aplicativo.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Files.ReadWrite Files.ReadWrite.All
Aplicativo Files.ReadWrite.All Sites.ReadWrite.All

Observação

O SharePoint Embedded requer a FileStorageContainer.Selected permissão para acessar o conteúdo do contêiner. Essa permissão é diferente das mencionadas anteriormente. Além das permissões do Microsoft Graph, seu aplicativo deve ter as permissões de tipo de contêiner necessárias para chamar essa API. Para obter mais informações, consulte Autenticação e autorização do SharePoint Embedded.

Solicitação 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

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.

{
  "requireSignIn": false,
  "sendInvitation": false,
  "roles": [ "read | write"],
  "recipients": [
    { "@odata.type": "microsoft.graph.driveRecipient" },
    { "@odata.type": "microsoft.graph.driveRecipient" }
  ],
  "message": "string"
}
Parâmetro Tipo Descrição
destinatários coleção driveRecipient Um grupo de destinatários que recebem o acesso e o convite para compartilhamento.
mensagem String Uma mensagem de texto sem formatação que está incluída no convite de compartilhamento. Comprimento máximo: 2.000 caracteres.
requireSignIn Booleano Especifica se o destinatário do convite precisa fazer logon para visualizar o item compartilhado.
sendInvitation Booliano Se verdadeiro, um link de compartilhamento será enviado ao destinatário. Caso contrário, uma permissão é concedida diretamente sem enviar uma notificação.
funções Coleção de cadeias de caracteres Especifica as funções que devem ser concedidas aos destinatários do convite de compartilhamento.
expirationDateTime DateTimeOffset Especifica a data/hora após a qual a permissão expira. Para o OneDrive corporativo ou de estudante e o SharePoint, expirationDateTime só é aplicável para permissões sharingLink . Disponível no OneDrive corporativo ou de estudante, SharePoint e contas pessoais premium do OneDrive.
password String A senha definida no convite pelo criador. Opcional e OneDrive somente para uso doméstico.
retainInheritedPermissions Booleano Opcional. Se true (padrão), quaisquer permissões herdadas existentes são mantidas no item compartilhado ao compartilhar esse item pela primeira vez. Se false, todas as permissões existentes são removidas ao compartilhar pela primeira vez. Não há suporte com o SharePoint Embedded.

Resposta

Se for bem-sucedido, esse método retornará um 200 OK código de resposta e uma coleção de objetos de permissão no corpo da resposta.

Para obter mais informações sobre como os erros são retornados, consulte Respostas de erro.

Resposta de sucesso parcial

Ao convidar vários destinatários, é possível que a notificação seja bem-sucedida para alguns e falhe para outros. Nesse caso, o serviço retorna uma resposta de sucesso parcial com um código de 207 Multi-Status status. Quando o sucesso parcial é retornado, a resposta para cada destinatário com falha contém um objeto de erro com informações sobre o que deu errado e como corrigi-lo. Para obter mais informações, consulte o Exemplo 2.

Enviar erros de notificação de convite

A tabela a seguir mostra alguns outros erros que seu aplicativo pode encontrar nos objetos innererror aninhados quando o envio de uma notificação falhar. Os aplicativos não são necessários para lidar com esses erros.

Código Descrição
accountVerificationRequired A verificação da conta é necessária para desbloquear o envio de notificações.
hipCheckRequired Precisa resolver a marca HIP (Host Intrusion Prevention) para desbloquear o envio de notificações.
exchangeInvalidUser A caixa de correio do usuário atual não foi encontrada.
exchangeOutOfMailboxQuota Sem cota.
exchangeMaxRecipients Número máximo excedido de destinatários que podem receber notificações ao mesmo tempo.

Observação: O serviço pode adicionar novos códigos de erro ou parar de retornar os antigos a qualquer momento.

Exemplos

Exemplo 1: Enviar um convite de compartilhamento

O exemplo a seguir mostra como enviar um convite de compartilhamento a um usuário com o endereço ryan@contoso.comde email, incluindo uma mensagem sobre um arquivo em colaboração. O convite concede acesso de leitura e gravação ao arquivo para Ryan.

Solicitação

O exemplo a seguir mostra uma solicitação.

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"
}

Resposta

O exemplo a seguir mostra a resposta.

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"
    }
  ]
}

Exemplo 2: Enviar convite de compartilhamento com êxito parcial

O exemplo a seguir mostra uma solicitação que foi parcialmente bem-sucedida.

Solicitação

O exemplo a seguir mostra uma solicitação.

POST https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/invite
Content-type: application/json

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

Resposta

O exemplo a seguir mostra a resposta 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"
    }
  ]
}

Para obter uma lista de funções disponíveis, consulte valores de propriedade de funções.