Introducción a Apps Script

Desde hace algún tiempo quería escribir acerca de AppScript desde sus definiciones, características y casos de uso hasta notas de mi experiencia personal en los diferentes proyectos en los que he podido incursionar en esta plataforma.

Como siempre es debido hay que comenzar por el principio.

¿Que es Apps Script?

Según la definición oficial de Google, Apps Script es una plataforma de JavaScript basada en la nube que le permite integrar tareas y automatizarlas en todos los productos de Google.

Sin mucha complicación podemos ver que Apps Script es un producto de Google diseñado para agregar funcionalidades extras a otros productos de Google, algo así como un producto transversal a todos los demás.

Estas funcionalidades extras van a depender de cada producto o cada contexto en el que se encuentren, por ejemplo, para el popular servicio de correo de Google (Gmail) una funcionalidad extra sería aquella que permite enviar mensajes a diferentes remitentes en una hora específica, mientras que para otro producto de Google como son las hojas de cálculo una funcionalidad extra sería la de leer datos de varias casillas y ejecutar diferentes acciones en base a estos datos.

Incluso podríamos combinar ambas funcionalidades en nuestro proyecto y crear una función que se encargue de enviar mensajes a diferentes remitentes con la información recolectada de una o varias hojas de cálculo.

En resumen Apps Script es una plataforma de desarrollo de aplicaciones en la que escribiendo simple código JavaScript y haciendo uso de las bibliotecas que Google nos proporciona para sus productos, podemos crear proyectos que interactúan tanto con el usuario como con dichos productos. Como siempre va a depender del propósito que le queramos dar o del problema que estemos tratando de solucionar con la plataforma Apps Script.

Características de Apps Script

Antes de ver a profundidad más acerca de la plataforma hay que dejar en claro algunos conceptos acerca de la misma:

La API de App Script se puede dividir en varios recursos: projects, projects.deployments, projects.versions, processes y scripts

Editor App Script

Estructura de las opciones del editor Apps Script

Google nos proporciona un entorno de desarrollo para los proyectos Apps Script desde el cual tenemos varias secciones con las que gestionar cada proyecto. Estas secciones son:

  1. Información general: Detalles del proyectos y estadísticas de ejecuciones.

  2. Editor: El editor de código proporcionado por Google para crear, eliminar, editar y guardar archivos tanto en extensión JS como HTML. Está construido sobre el el editor Monaco de Microsoft.

  3. Activadores: Cualquier proyecto de Apps Script puede ejecutar una o varias funciones internas mediante el uso de triggers o activadores. El objetivo de estos activadores es ejecutar una función dependiendo si se cumple una condición o no. Esta condición puede ser según tiempo (ejecutar la función cada 5 minutos, cada 2 horas, cada 3 días, etc) o al producirse un evento en un producto de Google (por ejemplo, al diligenciar un formulario de Google Froms se produce un evento y éste puede ser aprovechado para ejecutar una función)

  4. Ejecuciones: Cada vez que una función se ejecute ya sea manualmente desde el editor de código o a través de un activador o una llamada externa, se almacena un registro de dicha ejecución con algunos datos relacionados a la función ejecutada, el tiempo que tardó la función en ejecutarse, el origen de su ejecución, etc.

  5. Configuración del proyecto: Desde aquí se pueden realizar algunas configuraciones del proyecto como la zona horaria, permitir o no el entorno de ejecución V8 anteriormente mencionado, etc.

¿Como crear un proyecto?

Existen dos formas para crear un nuevo proyecto Apps Script:

  1. Ingresando al sitio script.google.com
  2. A través de un producto de Google que tenga esta opción como por ejemplo las hojas de cálculo o los formularios

Con la primera opción veremos la página de inicio de Apps Script, aquí podremos tener acceso a todos los proyectos que hayamos creado o aquellos que nos han compartido otros usuarios.

También podremos utilizar el botón Nuevo proyecto para crear un proyecto nuevo desde 0:

Sección de la interfaz Apps Script con el boton Nuevo Proyecto

Con la segunda opción crearemos un proyecto que se quedará vinculado al elemento que lo está creando (hojas de cálculo, formulario google, documento de Google). Con esta opción podremos hacer uso de algunas funcionalidades que hacen referencia al propio elemento que lo creó. Hay que mencionar que una vez este elemento desaparezca también lo hará el proyecto que contenía.

Hoja de cálculo con el botón llamado Extensiones que muestra el icono de Apps Script para crear un nuevo proyecto

Una vez creado nuestro proyecto veremos algo como lo siguiente:

Interfaz inicial del editor Apps Script

Editor

Vista principal del editor Apps Script con sus elementos principales resaltados

Voy a explicar cada una de las partes principales del editor AppScript basado en la imagen:

  1. Aquí se ubican todos y cada uno de los archivos que forman parte de nuestro proyecto. De momento solo se permiten archivos con extension HTML y JS

  2. Con este botón podremos crear un nuevo archivo según su extensión. Podemos ubicar este archivo dentro de una carpeta simplemente indicando el nombre de la carpeta separado por una barra inclinada “/” de la siguiente forma: CarpetaRaiz/SubCarpeta/index.html => Esto crearía una carpeta llamada CarpetaRaiz en cuyo interior hay una carpeta llamada SubCarpeta que a su vez contiene un archivo llamado index.html

Nota: El editor actual no nos permite visualizar estas estructuras de una forma cómoda, sin embargo con el uso de una extensión para el navegador podremos tener una mejor experiencia de usuario. En el siguiente enlace se describe a fondo la extensión y su uso: GASE

  1. Con este botón podremos IMPORTAR a nuestro proyecto otros proyectos Apps Script que hayan sido creados como bibliotecas con el objetivo de utilizar funciones contenidas en ellos. Hay que aclarar que el código ejecutado a través de una biblioteca es mas lento que el código que se ejecuta de forma “nativa” y que nosotros hemos creado en nuestro proyecto.

  2. Si bien nada mas abrir un proyecto tenemos a nuestra disposición una gran variedad de utilidades por parte de las librerías que nos proporciona Google, en ocasiones necesitaremos hacer uso de funciones extras que no están incluidas de forma predeterminada. Para ello haremos uso de este botón que nos permite elegir que servicio queremos incluir en nuestro proyecto.

  3. Con este botón ejecutaremos una función que hayamos seleccionado. Las funciones que tenemos disponibles para ejecutar dependerán del archivo en el cual nos encontremos, es decir que solo podremos ejecutar funciones que se encuentren contenidas en el archivo en el cual nos encontremos en ese momento.

  4. La sección en donde podremos escribir código tanto de JavaScript como de HTML. Contiene resaltados de sintaxis básico y sugerencias para el autocompletado de código entre otras utilidades. Podremos ver la lista completa presionando el botón F1

  5. Cuando realicemos la ejecución de una función podremos ver el resultado de dicha ejecución así como el resultado de todos los console.log y Logger.log que hayamos incluido en nuestro código

  6. Tenemos la opción de establecer que nuestro proyecto es una biblioteca para ser reutilizada en otros proyectos o que se trata de un servicio Web o como un complemento o como un servicio API. Todas estas opciones pueden ser creadas, modificadas y archivadas a través de ésta opción. En otro artículo veremos más a fondo este concepto.

  7. A través de este botón podremos compartir nuestro proyecto con otros usuarios Google para trabajar con ellos como colaboradores. Sin embargo es bueno mencionar que no es recomendable trabajar dos o más personas en un mismo código con esta opción ya que Apps Script no cuenta con un sistema de control de versiones, por lo que puede suceder que los cambios de dos personas se sobreescribán mutuamente sin que haya un registro de esos cambios, haciendo que se pueda perder información de forma permanente. En estos casos es mucho mejor hacer uso de un sistema de control de versiones como GIT

CONCLUSIÓN

Por el momento es suficiente para ser una breve introducción sin embargo aún falta mucho por explicar y ver. El siguiente paso es continuar con un tutorial de Apps Script.

← Volver al blog