permission: grant
Espacio de nombres: microsoft.graph
Conceda a los usuarios acceso a un vínculo representado por un permiso.
Esta API está disponible en las siguientes implementaciones nacionales de nube.
Servicio global | Gobierno de EE. UU. L4 | Us Government L5 (DOD) | China operada por 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Permissions
Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.
Tipo de permiso | Permisos con privilegios mínimos | Permisos con privilegios más altos |
---|---|---|
Delegado (cuenta profesional o educativa) | Files.ReadWrite | Files.ReadWrite.All, Sites.ReadWrite.All |
Delegado (cuenta personal de Microsoft) | No admitida. | No admitida. |
Aplicación | Files.ReadWrite.All | Sites.ReadWrite.All |
Solicitud HTTP
POST /shares/{encoded-sharing-url}/permission/grant
Parámetros de ruta de acceso
Nombre del parámetro | Valor | Descripción |
---|---|---|
encoded-sharing-url | string |
Obligatorio. Una dirección URL de uso compartido codificada correctamente. |
Codificar direcciones URL para compartir
Para codificar una dirección URL para compartir, use la lógica siguiente:
- Primero, use base64 para codificar la dirección URL.
- Convierta el resultado codificado en base64 en formato unpadded base64url quitando los caracteres
=
del final del valor, reemplazando/
por_
y+
por-
). - Anexe
u!
al principio de la cadena.
Como ejemplo, para codificar una dirección URL en 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('+','-');
Encabezados de solicitud
Nombre | Descripción |
---|---|
Authorization | {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización. |
Cuerpo de la solicitud
En el cuerpo de la solicitud, proporcione un objeto JSON con los siguientes parámetros.
{
"recipients": [
{ "@odata.type": "microsoft.graph.driveRecipient" }
],
"roles": [ "read | write"]
}
Parámetro | Tipo | Descripción |
---|---|---|
destinatarios | Collection(driveRecipient) | Colección de destinatarios que recibirán acceso. |
roles | Collection(String) | Si el vínculo es un vínculo de "acceso existente", especifica los roles que se concederán a los usuarios. De lo contrario, debe coincidir con el rol del vínculo. |
Para obtener una lista de los roles disponibles, vea Roles property values (Valores de propiedad de roles).
Respuesta
Si se ejecuta correctamente, este método devuelve un 200 OK
código de respuesta y una colección de permisos en el cuerpo de la respuesta.
Siempre se devolverá un permiso que representa el vínculo actualizado en el conjunto de resultados si se realiza correctamente. El vínculo actualizado se puede identificar mediante la presencia de una faceta "link" que contiene la propiedad "scope". En algunos casos, es posible que el vínculo actualizado tenga una dirección URL diferente a la del vínculo original, en cuyo caso se debe usar la nueva dirección URL.
Lea el tema Respuestas de error para obtener más información acerca de la manera en que se muestran los errores.
Ejemplo:
En este ejemplo se concede a los usuarios john@contoso.com y ryan@external.com acceso a un vínculo de uso compartido sin modificar otros permisos existentes en el vínculo.
Solicitud
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"]
}
Respuesta
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"
]
}
]
}
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.
Si el vínculo es un vínculo de acceso existente , se devolverán permisos adicionales que representan lo siguiente:
- Permisos de tipo de usuario que representan a los destinatarios a los que se ha concedido acceso correctamente. Se pueden identificar mediante la presencia de la propiedad grantedTo .
- Permisos de tipo de vínculo que representan invitaciones que deben enviarse a usuarios externos no reconocidos para que obtengan acceso. Se pueden identificar por la presencia de una faceta de invitación . Estas entradas contendrán un vínculo con la dirección URL de invitación y la colección grantedToIdentities indicará los usuarios a los que se debe enviar el vínculo.
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"
}
}
]
}
Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.