Compartilhar via


permissão: conceder

Namespace: microsoft.graph

Conceder aos utilizadores acesso a uma ligação representada por uma permissão.

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) 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
codificado-sharing-url string Obrigatório. Um URL de partilha devidamente codificado.

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 recebem acesso.
funções Coleção de cadeias de caracteres Se a ligação for uma ligação de "acesso existente", especifica as funções a serem concedidas aos utilizadores. Caso contrário, tem de corresponder à função da ligação.

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

Resposta

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

Uma permissão que represente a ligação atualizada será sempre devolvida no conjunto de resultados com êxito. A ligação atualizada pode ser identificada pela presença de uma faceta "link" que contém a propriedade "âmbito". Em alguns casos, pode ser possível que a ligação atualizada tenha um URL diferente da ligação original, caso em que o novo URL deve ser utilizado.

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

Exemplo

Este exemplo concede aos utilizadores john@contoso.com e ryan@external.com acesso a uma ligação de partilha sem modificar outras permissões existentes na ligação.

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 a ligação for uma ligação de acesso existente , serão devolvidas permissões adicionais que representam o seguinte:

  • Permissões de tipo de utilizador que representam destinatários a quem foi concedido acesso com êxito. Estes podem ser identificados pela presença da propriedade grantedTo .
  • Permissões de tipo de ligação que representam convites que precisam de ser enviados a utilizadores externos não reconhecidos para que obtenham acesso. Estes podem ser identificados pela presença de uma faceta de convite . Estas entradas irão conter uma ligação com o URL de convite e a coleção grantedToIdentities indicará os utilizadores a quem a ligação deve ser enviada.
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.