Compartilhar via


permissão: concessão

Namespace: microsoft.graph

Conceda aos usuários acesso a um link representado por uma permissão.

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

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

Permissões

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas 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 privilegiadas mais altas
Delegado (conta corporativa ou de estudante) Files.ReadWrite Files.ReadWrite.All, Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Files.ReadWrite.All Sites.ReadWrite.All

Solicitação HTTP

POST /shares/{encoded-sharing-url}/permission/grant

Parâmetros do caminho

Nome do Parâmetro Valor Descrição
encoded-sharing-url string Obrigatório. Uma URL de compartilhamento codificada corretamente.

Codificação de URLs de compartilhamento

Para codificar uma URL de compartilhamento, use a seguinte lógica:

  1. Primeiro, use base64 para codificar a URL.
  2. Converta o resultado codificado na base64 para o formato base64url sem preenchimento removendo caracteres = do final do valor, substituindo / por _ e + por -.)
  3. Acrescente u! ao início da cadeia de caracteres.

Por exemplo, para codificar uma URL em C#:

string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.

Corpo da solicitação

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

{
  "recipients": [
    { "@odata.type": "microsoft.graph.driveRecipient" }
  ],
  "roles": [ "read | write"]
}
Parâmetro Tipo Descrição
destinatários Coleção(driveRecipient) Uma coleção de destinatários que receberão acesso.
funções Collection(String) Se o link for um link de "acesso existente", especifica as funções a serem concedidas aos usuários. Caso contrário, deve corresponder à função do link.

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

Resposta

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

Uma permissão que representa o link atualizado sempre será retornada no conjunto de resultados com êxito. O link atualizado pode ser identificado pela presença de uma faceta 'link' que contém a propriedade 'scope'. Em alguns casos, pode ser possível que o link atualizado tenha uma URL diferente do link original, nesse caso, a nova URL deve ser usada.

Leia o tópico Respostas de erro para obter mais informações sobre como os erros são retornados.

Exemplo

Este exemplo concede aos usuários john@contoso.com e ryan@external.com acesso a um link de compartilhamento sem modificar outras permissões existentes no link.

Solicitação

POST https://graph.microsoft.com/v1.0/shares/{encoded-sharing-url}/permission/grant
Content-type: application/json

{
  "recipients": [
    {
      "email": "john@contoso.com"
    },
    {
      "email": "ryan@external.com"
    }
  ],
  "roles": ["read"]
}

Resposta

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "hasPassword": false,
      "id": "5fab944a-47ec-48d0-a9b5-5178a926d00f",
      "link": {
        "preventsDownload": false,
        "scope": "users",
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/:t:/g/design/EZexPoDjW4dMtKFUfAl6BK4BvIUuss52hLYzihBfx-PD6Q"
      },
      "roles": [
        "read"
      ]
    }
  ]
}

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

Se o link for um link de acesso existente , permissões adicionais serão retornadas representando o seguinte:

  • Permissões do tipo de usuário que representam destinatários que receberam acesso com êxito. Elas podem ser identificadas pela presença da propriedade grantedTo .
  • Permissões de tipo de link que representam convites que precisam ser enviados a usuários externos não reconhecidos para que eles obtenham acesso. Elas podem ser identificadas pela presença de uma faceta de convite . Essas entradas conterão um link com a URL de convite e a coleção grantedToIdentities indicará os usuários para os quais o link deve ser enviado.
HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "hasPassword": false,
      "id": "00000000-0000-0000-0000-000000000000",
      "link": {
        "preventsDownload": false,
        "scope": "existingAccess",
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/teams/design/shareddocs/Document.docx"
      },
      "roles": [
        "read"
      ]
    },
    {
      "grantedTo": {
        "user": {
          "displayName": "John Smith",
          "email": "john@contoso.com",
          "id": "47aecee2-d061-4730-8ecb-4c61360441ae"
        }
      },
      "id": "aTowIy5mfG1lbWJlcnNoaXB8bGltaXRlZDJAa2xhbW9kYi5vbm1pY3Jvc29mdC5jb20",
      "roles": [
        "read"
      ]
    },
    {
      "grantedToIdentities": [
        {
          "user": {
            "email": "ryan@external.com"
          }
        }
      ],
      "invitation": {
        "signInRequired": true
      },
      "roles": [
        "read"
      ],
      "link": {
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/:t:/g/teams/design/EZexPoDjW4dMtKFUfAl6BK4Bw_F7gFH63O310A7lDtK0mQ"
      }
    }
  ]
}

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.