Tareas comunes al acceder a Microsoft OneDrive desde tu aplicación

En este tema se explica cómo realizar las tareas comunes al acceder al contenido de OneDrive de un usuario desde tu aplicación.

Recorrer el directorio de OneDrive

Para usar las API de Live Connect para obtener información sobre una carpeta de nivel superior de un usuario en el directorio de OneDrive, haces una solicitud a me/skydrive o USER_ID/skydrive. Aquí puedes ver cómo realizar esta llamada:

  • En la transferencia de estado representacional (Representational State Transfer o REST), usa GET.
  • En JavaScript, usa la función WL.api , especificando un parámetro method de "GET".
  • En C#, usa el método LiveConnectClient.GetAsync.
  • En Objective-C, usa el método LiveConnectClient getWithPath.
  • En Java, usa el método LiveConnectClient.getAsync.

Es importante destacar dos estructuras en el objeto con formato de notación de objetos JavaScript (JSON) que se obtiene: la estructura de id, que representa el identificador de carpeta de la carpeta de nivel superior, y la estructura de upload_location, que representa la ubicación de la carpeta de nivel superior a la que puedes cargar archivos, fotos, vídeos y audio.

Si realizas una solicitud a me/skydrive/files o USER_ID/skydrive/files, el objeto con formato JSON que se devuelve contiene información acerca de todas las carpetas secundarias, los álbumes secundarios y los archivos de la carpeta de nivel superior del usuario solamente.

Desde allí, puedes recorrer la totalidad del directorio de OneDrive del usuario si haces una solicitud con FOLDER_ID/files o ALBUM_ID/files, donde FOLDER_ID o ALBUM_ID representan la estructura de id que corresponde al identificador de carpeta o identificador de álbum, respectivamente, en cualquier parte del directorio.

Al igual que con una carpeta de OneDrive de nivel superior del usuario, puedes usar la estructura de upload_location para que cualquier carpeta o álbum cargue archivos en dicha carpeta o álbum. Además, puedes usar la estructura de upload_location para que cualquier archivo, foto, vídeo o audio sobrescriba el contenido de ese archivo, esa foto, ese vídeo o ese audio.

Por ejemplo, este sería el aspecto de un directorio de OneDrive de un usuario desde un punto de vista conceptual.

GET https://apis.live.net/v5.0/me/skydrive?access_token=ACCESS_TOKEN
---
200 OK
{
    "id": "folder.a6b2a7e8f2515e5e", 
    ...
    "upload_location": "https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e/files",
    ...
    "type": "folder",
    ...
}
---
GET https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e/files?access_token=ACCESS_TOKEN
---
200 OK
{
    "data": [
        {
            "id": "folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110", 
            ...
            "upload_location": "https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110/files/"
            ...
            "type": "folder",
            ...
        }, {
            "id": "photo.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131", 
            ...
            "upload_location": "https://apis.live.net/v5.0/photo.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131/content/", 
            ...
            "type": "photo",
            ...
        }, {
            "id": "file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!119", 
            ...             
            "upload_location": "https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!119/content/", 
            ...
            "type": "file", 
            ...
        }
    ]
}

Arriba

Obtener una lista de objetos de OneDrive que se comparten con el usuario que inició sesión

Para detectar todos los objetos de OneDrive compartidos con el usuario que inició sesión, usa el ámbito wl.contacts_skydrive para hacer una solicitud GET a /USER_ID/skydrive/shared, donde USER_ID es me o el identificador del usuario que proporciona su consentimiento. Observa el siguiente ejemplo.

GET https://apis.live.net/v5.0/me/skydrive/shared?access_token=ACCESS_TOKEN

Nota  En la API de OneDrive no se pueden crear, actualizar o eliminar los archivos que estén en una carpeta compartida con el usuario que inició sesión. Las aplicaciones solo pueden manipular los archivos que sean propiedad del usuario que inició sesión.

Importante  No se admiten las aplicaciones de terceros que carguen archivos a las carpetas compartidas.

Arriba

Usar nombres descriptivos para acceder a determinadas carpetas de OneDrive

Para acceder a ciertas carpetas de OneDrive, puedes usar nombres descriptivos en lugar del identificador de carpeta. Usa los siguientes nombres descriptivos para acceder a estas carpetas correspondientes en la UI de OneDrive:

  • USER_ID/skydrive/camera_roll representa la carpeta Fotos de cámara en OneDrive.
  • USER_ID/skydrive/my_documents representa la carpeta Documentos.
  • USER_ID/skydrive/my_photos representa la carpeta Imágenes.
  • USER_ID/skydrive/public_documents representa la carpeta Público.

En cada caso, reemplaza USER_ID con me para el usuario que inició sesión o un identificador de usuario para cualquier otro usuario que proporcione consentimiento.

Por ejemplo, para leer las propiedades de la carpeta Documentos, usa una llamada de API REST al identificador de carpeta, de la siguiente manera.

GET https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110?access_token=ACCESS_TOKEN

No obstante, también puedes leer las propiedades de la carpeta Documentos con una llamada de API REST al nombre descriptivo de la carpeta, de la siguiente manera:

GET https://apis.live.net/v5.0/me/skydrive/my_documents?access_token=ACCESS_TOKEN

Nota  Para mover o copiar un archivo en una carpeta con un nombre descriptivo, indica solamente el nombre descriptivo como el valor de la estructura de destination. He aquí un ejemplo de cómo llamar a la API REST para mover un archivo a la carpeta Documentos.

MOVE https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!126

Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{
    "destination": "my_documents"
}

Arriba

Obtener una lista de los documentos usados más recientemente por el usuario

Para obtener una lista de los documentos de OneDrive que el usuario ha usado más recientemente, usa el ámbito wl.skydrive para enviar una solicitud GET a /USER_ID/skydrive/recent_docs, donde USER_ID es me o el identificador del usuario que proporciona su consentimiento. Observa el siguiente ejemplo.

GET https://apis.live.net/v5.0/me/skydrive/recent_docs?access_token=ACCESS_TOKEN

Arriba

Obtener una cuota de almacenamiento de OneDrive total y permanente del usuario

Para obtener información sobre el espacio de almacenamiento sin usar y disponible del usuario en OneDrive, haz una llamada GET a /me/skydrive/quota o /USER_ID/skydrive/quota, donde USER_ID es el identificador del usuario que inició sesión. Veamos un ejemplo de cómo usar la API de REST.

GET https://apis.live.net/v5.0/me/skydrive/quota?access_token=ACCESS_TOKEN

El objeto con formato JSON que se devuelve tiene la siguiente apariencia.

{
    "quota": 26843545600,
    "available": 26805319016
}

En el ejemplo anterior, el campoquota es el espacio de almacenamiento disponible total del usuario, en bytes. El campo available es el espacio de almacenamiento no usado restante del usuario, también en bytes.

Sugerencia  Antes de cargar un archivo, haz que tu aplicación se asegure de que hay suficiente espacio de almacenamiento disponible. Por ejemplo, tu aplicación podría obtener el tamaño del archivo en bytes y, después, compararlo con el número de bytes del campo available. Si el tamaño del archivo es mayor que el valor del campo available, la aplicación no debería intentar cargar el archivo. Si lo hace de todos modos, la solicitud de carga es errónea y OneDrive devuelve el error siguiente.

{
    "error": {
        "code": "resource_quota_exceeded", 
        "message": "The user has reached his or her storage quota limit."
    }
}

Arriba

Mostrar una vista previa de un elemento de OneDrive

Para mostrar una vista previa de un elemento de OneDrive, envía una solicitud GET a /skydrive/get_item_preview?type=TYPE&url=URL. El parámetro de cadena de consulta type opcional es uno de los siguientes:

  • thumbnail
  • small (para obtener una vista previa máxima de 100×100 píxeles)
  • album (máximo de 200×200)
  • normal (máximo de 800×800)

El parámetro de cadena de consulta obligatorio url es un vínculo compartido hacia el elemento de OneDrive. Aquí se proporcionan dos ejemplos, uno con una dirección URL de OneDrive más larga y otro con una dirección URL de sdrv.ms más corta (sdrv.ms es un servicio de acortamiento de direcciones URL exclusivo de OneDrive).

GET https://apis.live.net/v5.0/skydrive/get_item_preview?type=normal&url=https%3A%2F%2Fskydrive.live.com%2Fredir.aspx%3Fcid%3Da6b2a7e8f2515e5e%26amp%3Bresid%3DA6B2A7E8F2515E5E!132%26amp%3Bparid%3DA6B2A7E8F2515E5E!110%26amp%3Bauthkey%3D!ACuMMo37Ju8_xw0x

GET https://apis.live.net/v5.0/skydrive/get_item_preview?type=normal&url=http%3A%2F%2Fsdrv.ms%2FLTIvcyx

Ten en cuenta esto:

  • Para enviar la solicitud get_item_preview no tienes que solicitar ningún ámbito ni proporcionar un token de acceso.
  • Si el elemento no es una foto, y se asocia una vista previa con el elemento, se muestra una vista previa de miniaturas y se ignora el parámetro type, incluso si se ha proporcionado.
  • Una respuesta correcta tiene el valor "302 - Encontrado" para responseStatus con el vínculo a la vista previa del elemento en el encabezado de respuesta "Ubicación".
  • Si no existe la vista previa en un tamaño determinado, se mostrará la vista previa en el siguiente tamaño más grande que haya disponible. Si no hay una vista previa asociada con el elemento, se devuelve un error 404 (No se encuentra).
  • Puedes obtener un vínculo compartido a un elemento de una de estas tres maneras:
    • Envía una solicitud GET a ITEM_ID/shared_read_link, donde ITEM_ID es el identificador del elemento de OneDrive. Observa el siguiente ejemplo.
      GET https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!131/shared_read_link?access_token=ACCESS_TOKEN
      
      
      Puedes encontrar el valor del vínculo compartido en la estructura link del objeto de respuesta con formato JSON.
    • En la interfaz de usuario de OneDrive, selecciona el elemento y después haz clic en Compartir. Haz clic en Obtener un vínculo y, después, junto a View only, haz clic en Create. OneDrive muestra el valor del vínculo compartido, que puedes usar en tu solicitud get_item_preview. El valor debe tener un formato como este: https://onedrive.live.com/redir.aspx?cid=a6b2a7e8f2515e5e&resid=A6B2A7E8F2515E5E!132&parid=A6B2A7E8F2515E5E!110&authkey=!ACuMMo37Ju8_xw0x.
    • En la interfaz de usuario de OneDrive, selecciona el elemento y después haz clic en Compartir. Haz clic en Publicar en Twitter, sigue las instrucciones en pantalla y haz clic en Publicar. La publicación en Twitter creada recientemente incluye el valor del vínculo compartido, que puedes usar en tu solicitud get_item_preview. El valor debe tener un formato como este: http://1drv.ms/LTIvcyx.
  • El valor del parámetro de cadena de consulta url debe tener codificación URL. Por ejemplo, usa %3A para el carácter de dos puntos (":"), %2F para el carácter de barra diagonal ("/"), %3F para el carácter de signo de interrogación ("?") y %26 para el carácter de Y comercial ("&").

Arriba

 

 

Mostrar:
© 2015 Microsoft