Cargando



Introducción a Google Apps Script

En este tutorial veremos una introducción a Google Apps Script, como funciona, los diferentes tipos de scripts y algunos ejemplos de la herramienta.


nov 27 2014 02:19
Profesional
dic 01 2015 14:53

Las aplicaciones de Google ya tienen bastante tiempo dominando gran parte de los servicios que se les ofrecen a los usuarios para realizar tareas, estos van desde la gestión del correo electrónico, la creación de documentos, hojas de cálculo, diapositivas, manejo de eventos hasta el entretenimiento con servicios como YouTube.

 

Pero Google no solo se ha quedado con esto, han ido un paso más allá y ahora ofrecen Google Apps Script, el cual puede ser usado para la creación de nuevas aplicaciones webs o la automatización de tareas en las aplicaciones de Google ya existentes.

 

Un vistazo a Google Apps Script


Google Apps Script está basado en Javascript 1.6 con algunas mejoras de las versiones 1.7 y 1.8, por lo que muchas de las referencias y objetos comunes tales como Array, Date, RegExp, entre otros, estarán disponibles para su utilización. Adicionalmente no se necesita instalar nada en particular, Google brinda el editor de código directamente en el navegador y los scripts corren directamente en los servidores de Google.

 

 

Como mencionamos esta herramienta nos permite no solo crear aplicaciones web sino que podemos automatizar tareas en las aplicaciones de Google por mencionar un ejemplo sencillo podemos programar que se envíe un correo a ciertos destinatarios a una hora en específico o crear menús personalizados, diálogos y barras laterales para Google Docs, Sheets y Forms.

 

¿Qué se necesita para empezar a utilizar Google Apps Script?
Para empezar a utilizar Google Apps Script solo necesitas una cuenta de Google y muchas ganas de aprender algo nuevo, si todavía no tienes una cuenta de Google y no sabes cómo crearla puedes ingresar en este tutorial que te explica cómo.

 

Características de los servicios de Google

Google Apps Script provee más de treinta servicios predefinidos para la interacción con la data del usuario, sistemas de Google y sistemas externos. Estos servicios son brindados como objetos globales de acuerdo a las reglas de Javascript. Por ejemplo, así como Math ofrece métodos como random() y constantes como PI, el servicio de Spreadsheet de Apps Scripts ofrece métodos como openById(id), clases como Range e incluso enums como el DataValidationCriteria.

 

Veamos a profundidad las características más importantes de los servicios de Google, de esta forma podemos entender como están estructurados y cómo trabajan, esto para tener una noción de que podemos hacer con cada uno de ellos dentro de la herramienta.

 

Objetos globales


Cada servicio provee al menos un objeto global de alto nivel, por ejemplo el servicio de Gmail es accedido solamente mediante el objeto de GmailApp.

 

Pero también tenemos el caso de algunos servicios que proveen múltiples objetos globales, este el caso del servicio de Base el cual incluye cuatro objetos globales: Browser, Logger, MimeType y Session.

 

Llamada a los métodos


Los objetos globales de casi todos los servicios predefinidos de Google incluyen métodos que retornan data o una clase de tipo Apps Script. Veamos en que formato Scripts realiza la llamada a los métodos:
NombreObjetoGlobal.nombreMetodo(argumento1, argumento2, ..., argumentoN);
Por ejemplo, un script puede enviar un email con solo llamar al método de sendEmail del servicio de Gmail de la siguiente manera:
GmailApp.sendEmail('jacosta@ejemplo.com', 'Asunto', 'Este es el cuerpo.');
En el caso que un método retorne una clase de tipo Apps Scripts como ya habíamos mencionado, podemos encadenar llamadas métodos en una sola línea. Por ejemplo, el método DocumentApp.create() retorna Document, así que podemos hacer lo siguiente:
DocumentApp.create('Nuevo Documento').getBody().appendParagraph('Nuevo parrafo.');
Con esta línea lo tendrías.

 

Accediendo a las clases hijas


Cada servicio incluye una o más clases hijas que no pueden ser accedidas desde un alto nivel como se haría con un objeto global. No puedes usar la palabra reservada new para inicializar el constructor de estas clases como harías con clases como Date en Javascript.

 

¿Cómo acceder?
Sólo hay una forma de acceder a una clase hija y esto es llamando al método que la retorne.

 

Interfaces


Una gran cantidad de servicios incluyen unas clases especiales que están etiquetadas como interfaces. Estas son clases genéricas las cuales son usadas para retornar tipos para métodos que no pueden determinar el tipo por adelantado.

 

Por ejemplo el método del servicio Document llamado Body.getChild(childIndex) retorna un objeto Element genérico. Este Element es una interfaz que representa a otra clase, posiblemente las clases Paragraph o Table.

 

Podemos decir entonces que los objetos de las interfaces son raramente útiles por sí solos, se recomienda entonces que se haga el llamado a algún método como Element.asParagraph para castear el objeto a una clase precisa.

 

Trabajando con enums


La mayoría de los servicios incluyen algunos enums de valores. Por ejemplo el servicio de Drive usa los enums de Access y Permission para determinar que usuarios tienen acceso a él archivo o carpeta dentro de la aplicación.

 

En la mayoría de los casos se puede acceder a estos enums desde el objeto global. Por ejemplo una llamada al método Folder.setSharing luce de la siguiente forma:

var directorio = DriveApp.createFolder('Directorio Compartido');

directorio.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);
El ejemplo anterior crea un directorio el cual cualquier usuario en Internet puede acceder y escribir sobre él, adicionalmente pudimos ver el uso de los enums gracias al objeto global.

 

Tipos de Scripts

Ya habiendo visto las características de los servicios de Google es importante que definamos los tipos de Scripts que maneja la herramienta ya que cada uno tiene una implementación y uso diferente dentro del ecosistema de los Apps Script, veamos los tres tipos de Scripts que existen:

 

Scripts independientes o standalone


Los scripts independientes o standalone son cualquier tipo de scripts que no estén atados a Google Docs, Sheets o Forms. Estos los podemos encontrar por lo general con el resto de los archivos en Google Drive.

 

Utilidad
Muchos de estos scripts independientes son scripts de utilidades por ejemplo, podemos crear un script que nos permita buscar esos viejos archivos en nuestro Google Drive que no contengan un título para así eliminarlos.

 

Por último para crear un script independiente solo debemos ingresar a script.google.com y allí pulsando el botón Start Scripting nos llevará al editor en línea. De manera alternativa podemos crear un script independiente en Google Drive haciendo una pequeña configuración, veamos:

 

1- Nos dirigimos a nuestra unidad de Drive y presionamos Nuevo > Más > Conectar más aplicaciones:

 

introduccion-google-apps-script2.jpg

 

2- En la parte superior del input de búsqueda colocamos “script” y presionamos Conectar al lado de Google Apps Script y ya con esto podemos crear nuestros scripts independientes desde Google Drive.

 

Scripts atados a una Google App


Un script se encuentra atado a una aplicación de Google como Docs, Sheets o Forms si el mismo fue creado desde ese documento y no como un script independiente. Un script atado generalmente se comporta como un script independiente pero estos no aparecen en Google Drive, no pueden ser separados del archivo al cual se encuentran atados y lo más importante es que ganan ciertos privilegios sobre el archivo padre.

 

Estos scripts también pueden ser atados a Google Sites sin embargo estos casi siempre son desplegados como web apps. Es importante mencionar que los scripts atados a Docs, Sheets o Forms pueden convertirse en web apps pero esto no es lo usual.

 

Para crear un script atado solo debemos abrir Google Docs, Sheets o Forms, seleccionamos Herramientas > Editor de secuencia de comandos y esto nos llevará al editor en línea. Es importante recordar que para poder abrir un script atado debemos seguir el paso anterior ya que estos no aparecen en Drive.

 

introduccion-google-apps-script3.jpg

 

 

Web Apps


Por último tenemos las web apps, estos no son más que scripts standalone o atados que si poseen una interfaz de usuario y cumplen ciertos requisitos pueden ser publicados como una web app. Por ejemplo, un script que le permite a un usuario agendar reuniones con miembros de un equipo de trabajo puede ser presentado como una web app así el usuario podrá acceder a ella mediante un navegador web.

 

Como mencionamos los scripts deben cumplir con ciertos requerimientos para poder ser publicados como una web app, veamos:

 

1- Debe contener una función doGet(e) o doPost(e).

 

2- La función debe retornar un objeto HtmlOutput del servicio HTML, un objeto UiInstance del servicio UI o un objeto TextOutput del servicio Content.

 

 

El editor en línea

Antes de pasar a la parte práctica de este tutorial, es importante que primero nos pasemos por el editor en línea y nos familiaricemos con el mismo, este es proporcionado por Google y no se necesita instalar o configurar nada en particular para su utilización, para ir al editor en línea solo debemos ingresar en la siguiente dirección o hacerlo mediante Drive como se explicó anteriormente, veamos como luce su interfaz:

 

 

Como podemos ver es bastante simple a la vista y posee todas las opciones que podamos utilizar al alcance de unos cuantos clicks, de izquierda a derecha tenemos los botones de deshacer y rehacer como en cualquier editor de texto, seguido tenemos el botón de guardado, luego el botón para implementar como aplicación web, el ejecutar, depurar y por último un listado de las funciones que tengamos en nuestro código.

 

Podemos crear tantos scripts como deseemos, donde adicionalmente a esto tenemos la posibilidad de crear documentos .html para las interfaces de usuario, es importante darle un nombre a nuestro proyecto para así poderlo identificar de manera mucho más sencilla, veamos los puntos que mencionamos en la siguiente imagen:

 

introduccion-google-apps-script5.jpg

 

Por último, siendo un editor de texto de última generación, él mismo cuenta con una funcionalidad de autocompletar llamada content assist la cual revela los objetos globales así como los métodos y enums qué son válidos en el contexto actual del script. Para acceder a este solo debemos presionar las teclas Ctrl + Espacio y se nos desplegará las opciones relevantes para el contexto actual:

 

introduccion-google-apps-script6.jpg

 

 

Nuestro primer Script

Ya conocemos las características de los servicios de Google, sabemos identificar los tipos de scripts y nos familiarizamos con el editor en línea, ahora solo nos falta poner en práctica los conocimientos adquiridos, para ello vamos a crear un script independiente o standalone que crea un documento de Google Docs y nos envía el enlace por correo electrónico, veamos los pasos a seguir:

 

1- Primero abrimos nuestro editor en línea y pulsamos en Archivo > Nuevo > Proyecto, le colocamos un nombre al proyecto, en este caso lo llamaremos PrimerScript y creamos un nuevo archivo de secuencia de comandos.

 

2- Primero creamos nuestra función, la llamaremos crearEnviarDocumento(), en ella haremos nuestra primera instancia a un objeto global, en este caso utilizaremos DocumentApp y crearemos un nuevo documento llamado Hola, mundo! Luego accedemos al mismo y le agregamos un párrafo, veamos:


function crearEnviarDocumento() {

var doc = DocumentApp.create('Hola, mundo!');

doc.getBody().appendParagraph('Este documento fue creado por Google Apps Script.');

3- Ahora procedemos a obtener el enlace del documento, la dirección de correo electrónico del usuario activo y el nombre del documento para ser utilizado como el asunto:

var url = doc.getUrl();

var email = Session.getActiveUser().getEmail();

var subject = doc.getName();

4- Por último, concatenamos la variable url al cuerpo y utilizamos el objeto global de GmailApp para acceder al método sendEmail y procedemos al envío del enlace:

var body = 'Link to your doc: ' + url;

GmailApp.sendEmail(email, subject, body);

5- Guardamos nuestro script y debería lucir de la siguiente forma:

 

 

 

Probando nuestro Script


Ya teniendo nuestro script guardado solo nos queda ejecutarlo y probar la utilidad que hemos construido, para ello presionamos el botón de ejecutar o seleccionamos en el menú Ejecutar > crearEnviarDocumento. Un dialogo aparecerá y nos notificará que la aplicación necesita permisos para ser ejecutada, presionamos Continuar y en la ventana siguiente luego de leer las condiciones y estar de acuerdo presionamos Aceptar:

 

introduccion-google-apps-script8.jpg

 

Luego de esto una barra de color amarillo nos notificará que se está ejecutando nuestro script cuando desaparezca ya se habrá ejecutado el mismo. Ahora nos vamos a nuestra cuenta de correo de Gmail y verificamos el correo que nos debe haber llegado con el enlace:

 

 

Al abrir el correo nos damos cuenta que nuestro script fue todo un éxito y tenemos el documento de Google Docs creado y compartido a nosotros:

 

 

Con esto damos por concluido este tutorial y como pudimos apreciar la utilización de Google Apps Script es bastante fácil de entender, solo debemos practicar para sacarle provecho a esta herramienta que nos puede hacer la vida mucho más sencilla en nuestro ecosistema de Google, en próximos tutoriales estaremos viendo ejercicios mucho más avanzados de scripts atados y web apps. Hasta el próximo tutorial.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X