Share via


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:

  1. Primero, use base64 para codificar la dirección URL.
  2. Convierta el resultado codificado en base64 en formato unpadded base64url quitando los caracteres = del final del valor, reemplazando / por _ y + por -).
  3. 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.