Los activadores de Apps Script hacen que se ejecute una función de secuencia de comandos especificada (la función de activador) cada vez que ocurre un evento determinado. Solo ciertos eventos pueden activar los activadores, y cada aplicación de Google Workspace admite un conjunto diferente de eventos.
Cuando se activa un activador, se crea un objeto de evento. Esta estructura JSON contiene detalles sobre el evento que ocurrió. La información en la estructura del objeto de evento se organiza de forma diferente según el tipo de activador.
Una vez que se crea el objeto del evento, Apps Script lo pasa como un parámetro a la función del activador. La función del activador es una función de devolución de llamada que debes
implementar por tu cuenta para realizar las acciones adecuadas que permitan responder al
evento. Por ejemplo, en un complemento de Editor, se usa un activador para crear elementos de menú del complemento cuando se abre un documento. En este caso, debes implementar la función de activador onOpen(e)
para crear los elementos de menú que necesita el complemento, posiblemente con los datos del objeto del evento.
En esta página, se proporcionan lineamientos para usar activadores en proyectos de complementos del editor.
Tipos de activadores de complementos del editor
Puedes usar la mayoría de los tipos de activadores genéricos disponibles para los proyectos de Apps Script en los complementos de Editor, incluidos los activadores simples y la mayoría de los activadores instalables. El conjunto exacto de tipos de activadores disponibles depende de la aplicación que se extiende.
En la siguiente tabla, se muestran los tipos de activadores simples y que se pueden instalar que pueden usar los complementos de Editor, y se proporcionan vínculos a los objetos de evento correspondientes:
Evento | Objeto de evento | Activadores simples | Activadores instalables |
---|---|---|---|
Abrir Se abre un archivo del editor. |
Objeto del evento onOpen de Documentos Objeto del evento onOpen de Formularios Objeto del evento onOpen de Hojas de cálculo Objeto del evento onOpen de Presentaciones |
Documentos Formularios* Hojas de cálculo Presentaciones
|
Documentos Formularios Hojas de cálculo |
Instalar Se instalará el complemento. |
Objeto del evento onInstall |
Documentos Formularios Hojas de cálculo Presentaciones
|
|
Editar Se cambia el contenido de las celdas de la hoja de cálculo. |
Objeto del evento onEdit de Hojas de cálculo |
Hojas de cálculo
|
Hojas de cálculo |
Cambio Se edita o aplica formato al contenido de una hoja. |
Objeto del evento onChange de Hojas de cálculo |
Hojas de cálculo |
|
Form-submit Se envió un formulario de Google. |
Objeto del evento de envío de formularios de Formularios Objeto del evento de envío de formularios de Hojas de cálculo |
Formularios Hojas de cálculo |
|
Basado en el tiempo (reloj) El activador se activa en un momento o intervalo especificado. |
Objeto de evento basado en el tiempo |
Documentos Formularios Hojas de cálculo Presentaciones |
* El evento open de Google Forms no se produce cuando un usuario abre un formulario para responderlo, sino cuando un editor lo abre para modificarlo.
Activadores simples en complementos
Los activadores simples usan un conjunto de nombres de función reservados, no pueden usar servicios que requieran autorización y se habilitan automáticamente para su uso. En algunos casos, un activador instalable puede controlar un evento activador simple.
Para agregar un activador simple a un complemento, simplemente implementa una función con uno de los siguientes nombres reservados:
onOpen(e)
se ejecuta cuando un usuario abre un documento, una hoja de cálculo o una presentación.onOpen(e)
también se puede ejecutar cuando se abre un formulario en el editor (pero no cuando se responde el formulario). Solo se ejecuta si el usuario tiene permiso para editar el archivo en cuestión y se usa con mayor frecuencia para crear elementos de menú.onInstall(e)
se ejecuta cuando un usuario instala un complemento. Por lo general,onInstall(e)
solo se usa para llamar aonOpen(e)
, lo que garantiza que los menús del complemento aparezcan inmediatamente después de la instalación sin que el usuario tenga que actualizar la página.onEdit(e)
se ejecuta cuando un usuario cambia el valor de una celda en una hoja de cálculo. Este activador no se activa en respuesta a movimientos de celdas, formatos ni otros cambios que no alteren los valores de las celdas.
Restricciones
Los activadores simples en los complementos están sujetos a las mismas restricciones que rigen los activadores simples en otros tipos de proyectos de Apps Script. Ten en cuenta estas restricciones cuando diseñes complementos:
- Los activadores simples no se ejecutan si un archivo se abre en modo de solo lectura (vista o comentario). Este comportamiento evita que se propaguen los menús de complementos.
- En ciertas circunstancias, los complementos de Editor ejecutan sus activadores simples
onOpen(e)
yonEdit(e)
en un modo sin autorización. Este modo presenta algunas complicaciones adicionales, como se describe en el modelo de autorización de complementos. - Los activadores simples no pueden usar servicios ni realizar otras acciones que requieran autorización, excepto como se describe en el modelo de autorización de complementos.
- Los activadores simples no se pueden ejecutar durante más de 30 segundos. Ten cuidado de minimizar la cantidad de procesamiento que se realiza en una función de activador simple.
- Los activadores simples están sujetos a los límites de cuota de los activadores de Apps Script.
Activadores instalables en complementos
Los complementos pueden crear y modificar activadores instalables de forma programática con el servicio Script
de Apps Script. Los activadores instalables de complementos no se pueden crear de forma manual. A diferencia de los activadores simples, los activadores instalables pueden usar servicios que requieren autorización.
Los activadores instalables en los complementos no envían correos electrónicos de error al usuario cuando encuentran errores, ya que, en la mayoría de los casos, el usuario no puede abordar el problema. Por este motivo, debes diseñar tu complemento para que maneje los errores de forma fluida en nombre del usuario siempre que sea posible.
Los complementos pueden usar los siguientes activadores instalables:
- Los activadores instalables Open se ejecutan cuando un usuario abre un documento, una hoja de cálculo o cuando se abre un formulario en el editor (pero no cuando se responde el formulario).
- Los activadores instalables Edit se ejecutan cuando un usuario cambia el valor de una celda en una hoja de cálculo. Este activador no se activa en respuesta a cambios de formato ni a otros cambios que no alteren los valores de las celdas.
- Los activadores instalables de cambio se ejecutan cuando un usuario realiza cualquier cambio en una hoja de cálculo, incluidas las ediciones de formato y las modificaciones en la hoja de cálculo (como agregar una fila).
Los activadores instalables de envío de formulario se ejecutan cuando se envía una respuesta de Formularios de Google.
Los activadores basados en el tiempo (también llamados activadores de reloj) se activan en un momento específico o de forma reiterada en un intervalo de tiempo regular.
Autoriza activadores instalables
Por lo general, si un desarrollador actualiza un complemento para usar servicios nuevos que requieren una autorización adicional, se les solicita a los usuarios que vuelvan a autorizar el complemento la próxima vez que lo usen.
Sin embargo, los complementos que usan activadores encuentran desafíos de autorización especiales. Imagina un complemento que usa un activador para supervisar los envíos de formularios: un creador de formularios podría autorizar el complemento la primera vez que lo usa y, luego, dejarlo en ejecución durante meses o años sin volver a abrir el formulario. Si el desarrollador del complemento lo actualizara para usar servicios nuevos que requieran autorización adicional, el creador del formulario nunca vería el diálogo de reautorización porque nunca volvió a abrir el formulario, y el complemento dejaría de funcionar.
A diferencia de los activadores de los proyectos normales de Apps Script, los activadores de los complementos siguen activándose incluso si necesitan volver a autorizarse. Sin embargo, la secuencia de comandos falla si encuentra una línea de código que requiere una autorización que no tiene. Para evitar esta situación, los desarrolladores pueden usar el método ScriptApp.getAuthorizationInfo()
para restringir el acceso a partes del código que cambiaron entre las versiones publicadas del complemento.
A continuación, se muestra un ejemplo de la estructura recomendada para usar en las funciones de activador para evitar errores de autorización. La función de activador de ejemplo responde a un evento de envío de formulario dentro de un complemento de Hojas de cálculo de Google y, si se requiere una nueva autorización, le envía al usuario del complemento un correo electrónico de alerta con una plantilla HTML.
Code.gs
authorizationemail.html
Restricciones
Los activadores instalables en los complementos están sujetos a las mismas restricciones que rigen los activadores instalables en otros tipos de proyectos de Apps Script.
Además de estas restricciones, se aplican varias restricciones a los activadores instalables en complementos específicamente:
- Cada complemento solo puede tener un activador de cada tipo, por usuario y por documento. Por ejemplo, en una hoja de cálculo determinada, un usuario determinado solo puede tener un activador de edición, aunque también podría tener un activador de envío de formulario o un activador basado en el tiempo en la misma hoja de cálculo. Un usuario diferente con acceso a la misma hoja de cálculo podría tener su propio conjunto de activadores.
- Los complementos solo pueden crear activadores para el archivo en el que se usan. Es decir, un complemento que se usa en el Documento de Google A no puede crear un activador para supervisar cuándo se abre el Documento de Google B.
- Los activadores basados en el tiempo no se pueden ejecutar con más frecuencia que una vez por hora.
- Los complementos no le envían automáticamente un correo electrónico al usuario cuando el código que ejecuta un activador instalable arroja una excepción. Depende del desarrollador verificar y controlar los casos de fallas con facilidad.
- Los activadores de complementos dejan de activarse en cualquiera de las siguientes situaciones:
- Si el usuario desinstala el complemento, sucederá lo siguiente:
- Si el complemento está inhabilitado en un documento (si se vuelve a habilitar, el activador vuelve a estar operativo)
- Si el desarrollador despublica el complemento o envía una versión dañada a la tienda de complementos.
- Las funciones de activación de complementos se ejecutan hasta que alcanzan un código que usa un servicio no autorizado, momento en el que se detienen. Esto es cierto solo si el complemento está publicado. El mismo activador en un proyecto de Apps Script normal o un complemento no publicado no se ejecuta en absoluto si alguna parte de la secuencia de comandos necesita autorización.
- Los activadores instalables están sujetos a los límites de cuota de los activadores de Apps Script.