Obtener acceso a objetos DriveItem compartidos
Acceda a un objeto DriveItem compartido o a una colección de elementos compartidos mediante el uso de un shareId o una dirección URL para compartir.
Para usar una dirección URL para compartir con esta API, la aplicación debe transformar la dirección URL en un token para compartir.
Permisos
Se requiere uno de los permisos siguientes para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.
Tipo de permiso | Permisos (de menos a más privilegiados) |
---|---|
Delegado (cuenta profesional o educativa) | Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All |
Delegado (cuenta personal de Microsoft) | Files.ReadWrite, Files.ReadWrite.All |
Aplicación | Files.ReadWrite.All, Sites.ReadWrite.All |
Solicitud HTTP
GET /shares/{shareIdOrEncodedSharingUrl}
Parámetros de ruta de acceso
Nombre del parámetro | Valor | Descripción |
---|---|---|
sharingTokenOrUrl | string |
Necesario. Un token para compartir como se devuelve mediante la API o una dirección URL para compartir 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('+','-');
Respuesta
Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK
y un recurso sharedDriveItem en el cuerpo de la respuesta.
Ejemplo
Solicitud
Este es un ejemplo de la solicitud para recuperar un elemento compartido:
GET /shares/{shareIdOrEncodedSharingUrl}
Respuesta
Aquí tiene un ejemplo de la respuesta.
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "B64397C8-07AE-43E4-920E-32BFB4331A5B",
"name": "contoso project.docx",
"owner": {
"user": {
"id": "98E88F1C-F8DC-47CC-A406-C090248B30E5",
"displayName": "Ryan Gregg"
}
}
}
Acceder directamente al elemento compartido
Mientras que SharedDriveItem contiene alguna información útil, la mayoría de las aplicaciones querrán acceder directamente al objeto DriveItem compartido. El recurso SharedDriveItem incluye un root y relaciones de items que pueden acceder al contenido del ámbito del elemento compartido.
Ejemplo (archivo único)
Solicitud
Al solicitar la relación driveItem, se devolverá el objeto DriveItem compartido.
GET /shares/{shareIdOrUrl}/driveItem
Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "contoso project.docx",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"file": {},
"size": 109112
}
Ejemplo (carpeta compartida)
Solicitud
Al solicitar la relación driveItem y expandir la colección children, se devolverá el objeto DriveItem compartido junto con los archivos de la carpeta compartida.
GET /shares/{shareIdOrUrl}/driveItem?$expand=children
Respuesta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
"name": "Contoso Project",
"eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
"folder": {},
"size": 10911212,
"children": [
{
"id": "AFBBDD79-868E-452D-AD4D-24697D4A4044",
"name": "Propsoal.docx",
"file": {},
"size": 19001
},
{
"id": "A91FE90A-2F2C-4EE6-B412-C4FFBA3F71A6",
"name": "Update to Proposal.docx",
"file": {},
"size": 91001
}
]
}
Respuestas de error
Lea el tema Respuestas de error para obtener más información sobre la manera en que se devuelven los errores.
Comentarios
- Para OneDrive para la Empresa y SharePoint, la API de recursos compartidos siempre requiere autenticación y no puede usarse para tener acceso a contenido compartido de manera anónima sin un contexto de usuario.