5 cosas que no sabías podías hacer con el API de Google Drive

¿Has intentado utilizar el API de Google Drive? Si es así, entonces sabes que te permite manipular de manera programática el Google Drive de un usuario y construir aplicaciones para manipular archivos almacenados en su cuenta. Sin embargo, el API es capaz de hacer algunas cosas más que no sabías. Aquí está una lista de cinco casos específicos y cómo son utilizados desde el API.

1) Compartir un archivo con el mundo

Cuando compartes públicamente un archivo en Google Drive, puede ser descargado sin autenticación de por medio desde el URL provista por el API en el campo webContentLink, en el recurso Files. Para obtener este valor, envía una solicitud GET para obtener los meta datos del archivo y localiza el elemento webContentLink en la respuesta JSON, como se muestra en este ejemplo:
{
"kind": "drive#file",
"id": "0B8E...",
"etag": "WtRjAP...",
"selfLink": "https://www.googleapis.com/drive/v2/files/0B8E...",
"webContentLink": "https://docs.google.com/a/google.com/uc?id=0B8E...",
...
}

2) Permitir acceso a un usuario para comentarios exclusivamente

Cuando asignas permisos para un archivo con el API de Google Drive, puedes seleccionar uno de los valores ownerwriter y reader para el parámetro role. La IU de Drive lista además otro rol, commenter, que no es válido para el parámetro role.
Para permitir a un usuario acceso para realizar comentarios exclusivamente con el API de Drive, debes asignar el rol de lector e incluir el valor de commenter en la lista additionalRoles, como se muestra en el siguiente ejemplo:
{
"kind": "drive#permission",
...
"role": "reader",
"additionalRoles": [
"commenter"
],
...
}

3) Listar todos los archivos en la raíz

Es posible restringir la lista de archivos (y folders) que regresa el API de Drive, especificando los criterios de búsqueda en el parámetro q. Cada archivo tiene una colección de padres con todos los folders que lo contienen y puedes llamar al folder raíz en Google Drive con el conveniente alias root. Así, lo que tienes que hacer para obtener todos los archivos en la raíz es buscar aquellos elementos que incluyan a ‘root’ en su colección de padres, aquí está un ejemplo:
GET https://www.googleapis.com/drive/v2/files?q='root' in parents
Recuerda URL-codificar la búsqueda para la transmisión, a menos que utilices alguna de las bibliotecas cliente.

4) Determinar cuánto almacenamiento está disponible en la cuenta del usuario

Tu aplicación puede necesitar saber si los usuarios tienen espacio suficiente para salvar un archivo, para poder manejar aquellos casos en los que no. La información de la cuota está disponible en la fuente About del API de Drive:
{
"kind": "drive#about",
...
"quotaBytesTotal": "59055800320",
"quotaBytesUsed": "14547272",
"quotaBytesUsedInTrash": "511494",
...
}
La fuente incluye tres valores relacionados con el manejo de la cuota: quotaBytesTotalquotaBytesUsed y quotaBytesUsedInTrash. El primer valor indica la cantidad total de bytes disponibles al usuario (las cuentas nuevas obtienen 5GB gratis), mientras el segundo nos dice cuántos de esos bytes están siendo utilizados. Finalmente, cuando necesitas más espacio libre, puedes utilizar el último valor para conocer cuántos bytes están utilizados por archivos que han sido marcados como basura. Una aplicación puede utilizar este valor para sugerir vaciar la papelera antes de obtener espacio adicional.

5) Determinar si una aplicación del usuario puede abrir un archivo

Google Drive permite a sus usuarios almacenar cualquier tipo de archivo, así como instalar aplicaciones para abrir tipos de archivos que no están soportados por aplicaciones nativas de Google. En el caso que necesites saber qué aplicaciones están instaladas y qué tipos de archivos soportan, puedes obtener la fuente de Apps y buscar los elementos primaryMimeTypes secondaryMimeTypes para conocer los tipos MIME o primaryFileExtensions y secondaryFileExtensions para sus extensiones de archivo:
{
"kind": "drive#app",
"name": "Pixlr Editor",
...
"primaryMimeTypes": [
"image/psd",
"image/pxd",
"application/vnd.google-apps.drive-sdk.419782477519"
],
"secondaryMimeTypes": [
"image/png",
"image/jpeg",
"image/gif",
"image/bmp"
],
"primaryFileExtensions": [
"pxd",
"psd"
],
"secondaryFileExtensions": [
"jpg",
"png",
"jpeg",
"bmp",
"gif"
],
}

Nota: para acceder a la fuente de Apps necesitas solicitar acceso al alcance OAuth



Claudio Cherubino   profile | twitter | blog

Claudio is an engineer in the Google Drive Developer Relations team. Prior to Google, he worked as software developer, technology evangelist, community manager, consultant, technical translator and has contributed to many open-source projects. His current interests include Google APIs, new technologies and coffee.



Comentarios

Entradas populares de este blog

Dabbleboard, una pizarra para hacer más productivas las reuniones

Community Managers: Una fórmula sencilla de medir el ROI para Pymes

5 procesadores de texto alternativos y no convencionales