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:
- 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) | 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.