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 se produce un evento especificado. Solo ciertos eventos pueden hacer que se activen 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 de la estructura del objeto de evento se organiza de manera diferente según el tipo de activador.
Una vez que se crea el objeto de evento, Apps Script lo pasa como parámetro a la función de activador. La función de activador es una función de devolución de llamada que debes implementar por tu cuenta para realizar las acciones adecuadas para responder al evento. Por ejemplo, en un complemento del editor, se usa un activador para crear elementos de menú del complemento cuando se abre un documento. En este caso, implementas la función de activador onOpen(e) para crear los elementos de menú que necesita el complemento, posiblemente con los datos del objeto de evento.
En esta página, se proporcionan instrucciones 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 Google Apps Script en los complementos del 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.
A diferencia de los complementos del editor, los complementos de Google Workspace no pueden usar activadores simples o instalables genéricos de Apps Script. En cambio, usan activadores diseñados específicamente para complementos de Google Workspace. Para obtener más información, consulta Activadores de complementos de Google Workspace.
En la siguiente tabla, se muestran los tipos de activadores simples e instalables que pueden usar los complementos del 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 de evento onOpen de Documentos Objeto de evento onOpen de Formularios Objeto de evento onOpen de Hojas de cálculo Objeto de evento onOpen de Presentaciones |
Documentos
Formularios*
Hojas de cálculo
Presentaciones
|
Documentos
Formularios
Hojas de cálculo
|
| Instalar Se instala el complemento. |
Objeto de evento onInstall |
Documentos
Formularios
Hojas de cálculo
Presentaciones
|
|
| Editar Se cambia el contenido de la celda de la hoja de cálculo. |
Objeto de evento onEdit de Hojas de cálculo |
Hojas de cálculo
|
Hojas de cálculo |
| Cambiar Se edita o se da formato al contenido de una hoja. |
Objeto de evento onChange de Hojas de cálculo |
Hojas de cálculo |
|
| Form-submit Se envía un formulario de Google. |
Objeto de evento form-submit de Formularios Objeto de evento form-submit de Hojas de cálculo |
Formularios
Hojas de cálculo
|
|
| Time-driven (clock) El activador se activa en un momento o intervalo especificado. |
Objeto de evento time-driven |
Documentos
Formularios
Hojas de cálculo
Presentaciones
|
* El evento open de Formularios de Google no ocurre cuando un usuario abre un formulario para responder, sino cuando un editor lo abre para modificarlo.
Activadores simples en complementos
Los activadores simples usan un conjunto de nombres de funciones reservados, no pueden usar servicios que requieran autorización y se habilitan automáticamente para su uso. En algunos casos, un activador simple puede controlarse con un activador instalable en su lugar.
Para agregar un activador simple a un complemento, implementa una función con uno de los siguientes nombres reservados:
onOpense ejecuta cuando un usuario abre un documento, una hoja de cálculo o una presentación.onOpentambién se puede ejecutar cuando se abre un formulario en el editor (pero no cuando se responde al formulario). Solo se ejecuta si el usuario tiene permiso para editar el archivo en cuestión y, con mayor frecuencia, se usa para crear elementos de menú.onInstallse ejecuta cuando un usuario instala un complemento. Por lo general,onInstallsolo se usa para llamar aonOpen. Esto garantiza que los menús del complemento aparezcan inmediatamente después de la instalación sin que el usuario deba actualizar la página.onEditse 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, formato ni otros cambios que no alteren los valores de las celdas.
Restricciones
Los activadores simples en 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 tu complemento.
- En ciertas circunstancias, los complementos del editor ejecutan sus activadores simples
onOpenyonEditen un modo sin autorización. Este modo presenta complicaciones 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 pueden ejecutarse durante más de 30 segundos. Minimiza 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 activadores de Apps Script .
Activadores instalables en complementos
Los complementos pueden
crear y modificar activadores instalables de manera 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 complementos no envían correos electrónicos de error a los usuarios cuando se producen errores, ya que, en la mayoría de los casos, un usuario no puede solucionar el problema. Por este motivo, debes diseñar tu complemento para que controle los errores de forma correcta 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 al 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 formato ni otros cambios que no alteren los valores de las celdas.
- Los activadores instalables Change 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 Form-submit se ejecutan cuando se envía una respuesta de Formularios de Google.
Existen dos versiones de los activadores form-submit: una para Hojas de cálculo (donde se recopilan las respuestas del formulario) y otra para Formularios de Google. El objeto de evento que se pasa a una función de activador form-submit de Hojas de cálculo es más simple y muestra los valores de respuesta en arrays simples. El objeto de evento que se pasa a una función de activador form-submit de Formularios proporciona más información, contenida en un
FormResponseobjeto.Los activadores time-driven (también llamados activadores de reloj) se activan en un momento específico o de forma repetida en un intervalo de tiempo regular.
Autoriza activadores instalables
Por lo general, si un desarrollador actualiza un complemento para usar servicios nuevos que requieren 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 presentan desafíos especiales de autorización. 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, dejar que se ejecute durante meses o años sin volver a abrir el formulario. Si el desarrollador del complemento actualizara el complemento para usar servicios nuevos que requieren 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 en proyectos normales de Apps Script, los activadores en complementos continúan activándose incluso si necesitan volver a autorizarse.
Sin embargo, la secuencia de comandos aún falla si alcanza una línea de código que requiere autorización que no tiene. Para evitar esto, usa
ScriptApp.getAuthorizationInfo
para restringir el acceso a partes del código que cambiaron entre las versiones de
el complemento.
En los siguientes ejemplos, se muestra la estructura recomendada para usar en funciones de activador para evitar errores de autorización. La función de activador de ejemplo responde a un evento form-submit dentro de un complemento de Hojas de Google y, si se requiere volver a autorizar, envía al usuario del complemento un correo electrónico de alerta con HTML con plantilla.
Code.gs
authorizationemail.html
Restricciones
Los activadores instalables en 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 form-submit o un activador time-driven 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 usa el complemento. Es decir, un complemento que se usa en el Documento A de Google no puede crear un activador para supervisar cuándo se abre el Documento B de Google.
- Los activadores time-driven no pueden ejecutarse con una frecuencia superior a una vez por hora.
- Los complementos no envían automáticamente un correo electrónico al usuario cuando el código que ejecuta un activador instalable arroja una excepción. Es responsabilidad del desarrollador verificar y controlar los casos de falla de forma correcta.
- Los activadores de complementos dejan de activarse en cualquiera de las siguientes situaciones:
- Si el usuario desinstala el complemento,
- Si el complemento está inhabilitado en un documento (si se vuelve a habilitar, el activador vuelve a funcionar) o
- Si el desarrollador anula la publicación del complemento o envía una versión dañada a la tienda de complementos.
- Las funciones de activador de complementos se ejecutan hasta que alcanzan el código que usa un servicio no autorizado, momento en el que se detienen. Esto solo es cierto si se publica el complemento. El mismo activador en un proyecto normal de Apps Script 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 activadores de Apps Script .
Documentos
Formularios*
Hojas de cálculo
Presentaciones