De Google podemos decir cualquier cosa, excepto que sea predecible con sus nuevos servicios y aplicaciones. Y este es el caso de GoogleCL, una aplicación para acceder a los servicios de datos de la empresa desde la línea de comandos. Fue presentado con bombo y platillo hace no más de una semana y no es sino un gran script Python que usa las bibliotecas gdata (Google Data Protocol). Les presentaré unos ejemplos para comenzar a aprovecharlo.
Por ahora, GoogleCL soporta estos servicios:
Docs
google docs edit --title "Comandos Linux"
Blogger
google blogger post --title "Frase" "Si no te equivocas de vez en cuando, es que no lo intentas"
Calendar
google calendar add "Desayuno en Tiffany"
Contacts
google contacts list name,email > contactos-respaldo.csv
Picasa
google picasa create --title "Fotos vergonzosas" ~/fotos/familia/*.png
Youtube
google youtube post --category Education aprendiendo_navi.mp4
Instalación enUbuntu/Debian
Descarga el código fuente o bien el DEB para sistemas de la familia Debian. Elige tu favorita del sitio de descargas. La versión más reciente a la fecha es la 0.9.7. Desde Debian/Ubuntu ejecuta:
sudo dpkg -i googlecl_0.9.7-1_all.deb
Uso
Hay muchos ejemplos en el sitio de GoogleCL. Aquí me concentraré en mostrar cómo configurar el acceso a Google Docs desde la línea de comandos. Antes de eso debes saber que ejecutado sin argumentos, GoogleCL inicia una sesión interactiva a través del comando google, con el carácter “>” como prompt.
google
> help
Welcome to the Google CL tool!
Commands are broken into several parts: service, task, options, and arguments.
For example, in the command
[...más salida...]
Enter "> help <service>" for more information on a service.
Or, just "quit" to quit.
> help docs
Available tasks for service docs: 'edit', 'delete', 'list', 'upload', 'get'
edit: Edit a document
Requires: title Optional: format, editor
delete: Delete documents
Requires: none Optional: title
list: List documents
Requires: delimiter Optional: title, folder
upload: Upload a document
Requires: none Optional: title, folder, no-convert Arguments: PATH_TO_FILE
get: Download a document
Requires: (title OR folder) Arguments: LOCATION
> quit
Usaré la sesión interactiva en todos los ejemplos.
Es importante configurar el navegador que utilizaremos con GoogleCL para realizar ciertas tareas. Hay dos opciones: exportar una variable de ambiente BROWSER o editar el archivo de configuración de la aplicación. Te recomiendo esta última.
echo auth_browser=firefox >> ~./google/config
Desde el shell de GoogleCL y con ayuda de la documentación haremos unas sencillas tareas. Comencemos por obtener una lista de nuestros documentos. La primera vez te solicitará un usuario y luego que aceptes desde el navegador que GoogleCL pueda acceder a tu cuenta en el futuro.
google
> docs list
Please specify user: *****
Please log in and/or grant access via your browser at https://www.google.com
***** then hit enter.
El navegador que elegiste se abre y debes dar clic en “Grant access”. Un archivo access_tok_tu_usuario
se crea bajo el directorio ~./google
.
De ahora en adelante ya no será necesario autorizar nada para ese usuario. Después de aceptar, en el shell de google aparece un listado de tus archivos. Aquí muestro una vista parcial de la salida porque es extensa.
Lista de ejemplos,http://docs.google.com/Doc?docid=*****
Reporte 10-P,http://spreadsheets.google.com/ccc?key=*****
[... más salida ...]
Ahora edito un documento de texto con Vim.
docs edit --title "In the beginning was the command line" --editor vim
Y aquí lo descargo
docs get --title "In the beginning was the command line"
Downloading In the beginning was the command line to /home/eli/In the [...] .txt
Conclusiones
Como sucede con cualquier herramienta, GoogleCL puede ser tan poderoso como lo quieras. Sobre todo si lo incluyes en tus scripts personales. Además notarás que algunas opciones tienen bugs, pero ten paciencia y espera la versión 1.0 estable. Si eres frecuente usuario del shell y de los servicios de Google, encontrarás en GoogleCL un importante aliado para tu productividad.