Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Namespace: microsoft.graph
Conceder aos usuários acesso a um link representado por uma permissão.
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) | 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 |
|---|---|---|
| URL de compartilhamento codificada | 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:
- Primeiro, use base64 para codificar a URL.
- Converta o resultado codificado na base64 para o formato base64url sem preenchimento removendo caracteres
=do final do valor, substituindo/por_e+por-.) - 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 | Um conjunto de destinatários que recebem acesso. |
| funções | Coleção de cadeias de caracteres | 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 código de 200 OK resposta e uma coleção de permissões no corpo da resposta.
Uma permissão representando o link atualizado sempre será retornada no conjunto de resultados em caso de êxito. O link atualizado pode ser identificado pela presença de uma faceta 'link' contendo a propriedade 'scope'. Em alguns casos, pode ser possível que o link atualizado tenha um URL diferente do link original, caso em que o novo URL deve ser usado.
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 de tipo de usuário que representam destinatários que receberam acesso com êxito. Eles podem ser identificados pela presença da propriedade grantedTo .
- Permissões do tipo link que representam convites que precisam ser enviados a usuários externos não reconhecidos para que eles tenham acesso. Eles podem ser identificados 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.