Compartilhar via


driveItem: convidar

Namespace: microsoft.graph

Envie um convite de partilha para um driveItem. Um convite de partilha fornece permissões aos destinatários e, opcionalmente, envia-lhes um e-mail para notificá-los de que o item foi partilhado.

Importante

  • Não é possível criar ou modificar permissões no driveItem raiz de unidades com um driveType de personal (OneDrive para casa).
  • Não é possível convidar novos convidados através do acesso apenas à aplicação. Os convidados existentes podem ser convidados através de pedidos apenas de aplicações.

Esta API está disponível nas seguintes implementações de cloud nacionais.

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

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
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 aceder ao conteúdo do contentor. Esta permissão é diferente das mencionadas anteriormente. Além das permissões do Microsoft Graph, a sua aplicação tem de ter as permissões de tipo de contentor necessárias para chamar esta API. Para obter mais informações, veja Autorização e autenticaçã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 Uma coleção de destinatários que recebem acesso e o convite de partilha.
mensagem String Uma mensagem de texto sem formatação que está incluída no convite de compartilhamento. Comprimento máximo de 2000 carateres.
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 partilha.
expirationDateTime DateTimeOffset Especifica o dateTime após o qual a permissão expira. Para o OneDrive para trabalho ou escola e SharePoint, expirationDateTime só é aplicável para permissões de partilhaLigação . Disponível no OneDrive para o trabalho ou escola, no SharePoint e em contas oneDrive pessoais premium.
password String A palavra-passe definida no convite pelo criador. Opcional e oneDrive apenas para casa.
retainInheritedPermissions Booleano Opcional. Se true (predefinição), todas as permissões herdadas existentes forem mantidas no item partilhado ao partilhar este item pela primeira vez. Se false, todas as permissões existentes são removidas ao partilhar pela primeira vez.

Resposta

Se for bem-sucedido, este método devolve 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 devolvidos, veja Respostas de erros.

Resposta de êxito parcial

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

Enviar erros de notificação de convite

A tabela seguinte mostra outros erros que a sua aplicação poderá encontrar nos objetos internos aninhados quando o envio de notificação falha. As aplicações não são necessárias para lidar com estes erros.

Código Descrição
accountVerificationRequired A verificação da conta é necessária para desbloquear o envio de notificações.
hipCheckRequired Precisa de resolver a HIP (Prevenção de Intrusões do Anfitrião) marcar para desbloquear o envio de notificações.
exchangeInvalidUser A caixa de correio do utilizador atual não foi encontrada.
exchangeOutOfMailboxQuota Fora da quota.
exchangeMaxRecipients Foi excedido o número máximo de destinatários que podem ser enviados notificações ao mesmo tempo.

Nota: O serviço pode adicionar novos códigos de erro ou parar de devolver os antigos em qualquer altura.

Exemplos

Exemplo 1: Enviar um convite de partilha

O exemplo seguinte mostra como enviar um convite de partilha a um utilizador com o endereço ryan@contoso.comde e-mail , incluindo uma mensagem sobre um ficheiro 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 partilha com êxito parcial

O exemplo seguinte mostra um pedido que é parcialmente bem-sucedido.

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 seguinte 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, veja valores de propriedade de funções.