Les déclencheurs Apps Script exécutent une fonction de script spécifiée (la fonction de déclenchement) chaque fois qu'un événement spécifié se produit. Seuls certains événements peuvent déclencher des déclencheurs, et chaque application Google Workspace est compatible avec un ensemble d'événements différent.
Lorsqu'un déclencheur se déclenche, un objet d'événement est créé. Cette structure JSON contient des informations sur l'événement qui s'est produit. Les informations de la structure de l'objet d'événement sont organisées différemment en fonction du type de déclencheur.
Une fois l'objet d'événement créé, Apps Script le transmet en tant que paramètre à la fonction de déclenchement. La fonction de déclenchement est une fonction de rappel que vous devez implémenter vous-même pour effectuer les actions appropriées en réponse à l'événement. Par exemple, dans un module complémentaire d'éditeur, un déclencheur est utilisé pour créer des éléments de menu de module complémentaire lorsqu'un document est ouvert. Dans ce cas, vous implémentez une fonction de déclenchement onOpen(e) pour créer les éléments de menu dont le module complémentaire a besoin, en utilisant éventuellement les données de l'objet d'événement.
Cette page fournit des consignes sur l'utilisation des déclencheurs dans les projets de modules complémentaires d'éditeur.
Types de déclencheurs de modules complémentaires d'éditeur
Vous pouvez utiliser la plupart des types de déclencheurs génériques disponibles pour les projets Google Apps Script dans les modules complémentaires d'éditeur, y compris les déclencheurs simples et la plupart des déclencheurs installables. L'ensemble exact de types de déclencheurs disponibles dépend de l'application étendue.
Contrairement aux modules complémentaires d'éditeur, les modules complémentaires Google Workspace ne peuvent pas utiliser de déclencheurs simples ou installables Apps Script génériques. Ils utilisent plutôt des déclencheurs conçus spécifiquement pour les modules complémentaires Google Workspace. Pour en savoir plus, consultez Déclencheurs de modules complémentaires Google Workspace.
Le tableau suivant présente les types de déclencheurs simples et installables que les modules complémentaires d'éditeur peuvent utiliser, et fournit des liens vers les objets d'événement correspondants :
| Événement | Objet d'événement | Déclencheurs simples | Déclencheurs installables |
|---|---|---|---|
| Ouvrir Un fichier d'éditeur est ouvert. |
Objet d'événement onOpen Docs Objet d'événement onOpen Forms Objet d'événement onOpen Sheets Objet d'événement onOpen Slides |
Docs
Forms*
Sheets
Slides
|
Docs
Forms
Sheets
|
| Installer Le module complémentaire est installé. |
Objet d'événement onInstall |
Docs
Forms
Sheets
Slides
|
|
| Modifier Le contenu d'une cellule de feuille de calcul est modifié. |
Objet d'événement onEdit Sheets |
Sheets
|
Sheets |
| Modifier Le contenu d'une feuille est modifié ou mis en forme. |
Objet d'événement onChange Sheets |
Sheets |
|
| Envoyer un formulaire Un formulaire Google Forms est envoyé. |
Objet d'événement form-submit Forms Objet d'événement form-submit Sheets |
Forms
Sheets
|
|
| Déclenché par le temps (horloge) Le déclencheur se déclenche à une heure ou à un intervalle spécifié. |
Objet d'événement déclenché par le temps |
Docs
Forms
Sheets
Slides
|
* L'événement d'ouverture de Google Forms ne se produit pas lorsqu'un utilisateur ouvre un formulaire pour y répondre, mais lorsqu'un éditeur l'ouvre pour le modifier.
Déclencheurs simples dans les modules complémentaires
Les déclencheurs simples utilisent un ensemble de noms de fonctions réservés, ne peuvent pas utiliser de services nécessitant une autorisation et sont automatiquement activés pour être utilisés. Dans certains cas, un événement de déclencheur simple peut être géré par un déclencheur installable à la place.
Vous pouvez ajouter un déclencheur simple à un module complémentaire en implémentant une fonction avec l'un des noms réservés suivants :
onOpens'exécute lorsqu'un utilisateur ouvre un document, une feuille de calcul ou une présentation.onOpenpeut également s'exécuter lorsqu'un formulaire est ouvert dans l'éditeur (mais pas lorsque vous y répondez). Il ne s'exécute que si l'utilisateur est autorisé à modifier le fichier en question et est le plus souvent utilisé pour créer des éléments de menu.onInstalls'exécute lorsqu'un utilisateur installe un module complémentaire. En règle générale,onInstalln'est utilisé que pour appeleronOpen. Cela garantit que les menus du module complémentaire s'affichent immédiatement après l'installation sans que l'utilisateur n'ait à actualiser la page.onEdits'exécute lorsqu'un utilisateur modifie la valeur d'une cellule dans une feuille de calcul. Ce déclencheur ne se déclenche pas en réponse aux déplacements de cellules, à la mise en forme ou à d'autres modifications qui n'altèrent pas les valeurs des cellules.
Restrictions
Les déclencheurs simples des modules complémentaires sont soumis aux mêmes restrictions que celles qui régissent les déclencheurs simples dans d'autres types de projets Apps Script. Tenez compte de ces restrictions lors de la conception de modules complémentaires :
- Les déclencheurs simples ne s'exécutent pas si un fichier est ouvert en mode lecture seule (affichage ou commentaire). Ce comportement empêche le remplissage des menus de votre module complémentaire.
- Dans certaines circonstances, les modules complémentaires d'éditeur exécutent leurs déclencheurs simples
onOpenetonEditen mode sans autorisation. Ce mode présente des complications, comme indiqué dans le modèle d'autorisation des modules complémentaires. - Les déclencheurs simples ne peuvent pas utiliser de services ni effectuer d'autres actions nécessitant une autorisation, sauf comme indiqué dans le modèle d'autorisation des modules complémentaires.
- Les déclencheurs simples ne peuvent pas s'exécuter pendant plus de 30 secondes. Réduisez au minimum la quantité de traitement effectuée dans une fonction de déclencheur simple.
- Les déclencheurs simples sont soumis aux limites de quotas de déclencheurs Apps Script .
Déclencheurs installables dans les modules complémentaires
Les modules complémentaires peuvent
créer et modifier des déclencheurs installables de manière programmatique
à l'aide du service Script
Apps Script. Les déclencheurs installables des modules complémentaires ne peuvent pas être créés
manuellement. Contrairement aux déclencheurs simples, les déclencheurs installables peuvent utiliser des services nécessitant une autorisation.
Les déclencheurs installables des modules complémentaires n'envoient pas d'e-mails d'erreur à l'utilisateur lorsqu'ils rencontrent des erreurs, car dans la plupart des cas, un utilisateur ne peut pas résoudre le problème. Pour cette raison, vous devez concevoir votre module complémentaire de manière à gérer les erreurs de manière appropriée pour l'utilisateur chaque fois que cela est possible.
Les modules complémentaires peuvent utiliser les déclencheurs installables suivants :
- Les déclencheurs installables Ouvrir s'exécutent lorsqu'un utilisateur ouvre un document, une feuille de calcul ou un formulaire dans l'éditeur (mais pas lorsqu'il y répond).
- Les déclencheurs installables Modifier s'exécutent lorsqu'un utilisateur modifie la valeur d'une cellule dans une feuille de calcul. Ce déclencheur ne se déclenche pas en réponse à la mise en forme ou à d'autres modifications qui n'altèrent pas les valeurs des cellules.
- Les déclencheurs installables Modifier s'exécutent lorsqu'un utilisateur apporte une modification à une feuille de calcul, y compris des modifications de mise en forme et des modifications de la feuille de calcul elle-même (par exemple, l'ajout d'une ligne).
Les déclencheurs installables Envoyer un formulaire s'exécutent lorsqu'une réponse à un formulaire Google Forms est envoyée.
Il existe deux versions de déclencheurs d'envoi de formulaire : une pour Sheets (où les réponses aux formulaires sont collectées) et une pour Google Forms. L' objet d'événement transmis à une fonction de déclencheur d'envoi de formulaire Sheets est plus simple et renvoie les valeurs de réponse dans des tableaux simples. L' objet d'événement transmis à une fonction de déclencheur d'envoi de formulaire Forms fournit plus d'informations, contenues dans un objet
FormResponse.Les **déclencheurs déclenchés par le temps** (également appelés déclencheurs d'horloge) se déclenchent à une heure spécifique ou de manière répétée à intervalles réguliers.
Autoriser les déclencheurs installables
Normalement, si un développeur met à jour un module complémentaire pour utiliser de nouveaux services nécessitant une autorisation supplémentaire, les utilisateurs sont invités à réautoriser le module complémentaire lors de leur prochaine utilisation.
Toutefois, les modules complémentaires qui utilisent des déclencheurs rencontrent des problèmes d'autorisation spécifiques. Imaginez un module complémentaire qui utilise un déclencheur pour surveiller les envois de formulaires : un créateur de formulaire peut autoriser le module complémentaire lors de sa première utilisation, puis le laisser s'exécuter pendant des mois ou des années sans jamais rouvrir le formulaire. Si le développeur du module complémentaire met à jour le module complémentaire pour utiliser de nouveaux services nécessitant une autorisation supplémentaire, le créateur du formulaire ne verra jamais la boîte de dialogue de réautorisation, car il n'a jamais rouvert le formulaire, et le module complémentaire cessera de fonctionner.
Contrairement aux déclencheurs des projets Apps Script standards, les déclencheurs des modules complémentaires continuent de se déclencher même s'ils nécessitent une réautorisation.
Toutefois, le script échoue toujours s'il atteint une ligne de code qui nécessite une autorisation dont il ne dispose pas. Pour éviter cela, utilisez
ScriptApp.getAuthorizationInfo
pour limiter l'accès aux parties du code qui ont changé entre les versions de
le module complémentaire.
Les exemples suivants montrent la structure recommandée à utiliser dans les fonctions de déclencheur pour éviter les pièges d'autorisation. La fonction de déclencheur d'exemple répond à un événement d'envoi de formulaire dans un module complémentaire Google Sheets et, si une réautorisation est requise, envoie à l'utilisateur du module complémentaire un e-mail d'alerte à l'aide d'un code HTML basé sur un modèle.
Code.gs
authorizationemail.html
Restrictions
Les déclencheurs installables des modules complémentaires sont soumis aux mêmes restrictions que celles qui régissent les déclencheurs installables dans d'autres types de projets Apps Script.
Outre ces restrictions, plusieurs restrictions s'appliquent spécifiquement aux déclencheurs installables des modules complémentaires :
- Chaque module complémentaire ne peut avoir qu'un seul déclencheur de chaque type, par utilisateur et par document. Par exemple, dans une feuille de calcul donnée, un utilisateur donné ne peut avoir qu'un seul déclencheur de modification, mais il peut également avoir un déclencheur d'envoi de formulaire ou un déclencheur déclenché par le temps dans la même feuille de calcul. Un autre utilisateur ayant accès à la même feuille de calcul peut avoir son propre ensemble de déclencheurs.
- Les modules complémentaires ne peuvent créer des déclencheurs que pour le fichier dans lequel ils sont utilisés. Autrement dit, un module complémentaire utilisé dans le document Google Docs A ne peut pas créer de déclencheur pour surveiller l'ouverture du document Google Docs B.
- Les déclencheurs déclenchés par le temps ne peuvent pas s'exécuter plus d'une fois par heure.
- Les modules complémentaires n'envoient pas automatiquement d'e-mail à l'utilisateur lorsqu'une exception est générée par le code exécuté par un déclencheur installable. Il appartient au développeur de vérifier et de gérer les cas d'échec de manière appropriée.
- Les déclencheurs de modules complémentaires cessent de se déclencher dans les situations suivantes :
- Si le module complémentaire est désinstallé par l'utilisateur,
- Si le module complémentaire est désactivé dans un document (s'il est réactivé, le déclencheur redevient opérationnel), ou
- Si le développeur annule la publication du module complémentaire ou envoie une version défectueuse au magasin de modules complémentaires.
- Les fonctions de déclencheur de module complémentaire s'exécutent jusqu'à ce qu'elles atteignent un code qui utilise un service non autorisé, auquel cas elles s'arrêtent. Cela n'est vrai que si le module complémentaire est publié. Le même déclencheur dans un projet Apps Script standard ou un module complémentaire non publié ne s'exécute pas du tout si une partie du script nécessite une autorisation.
- Les déclencheurs installables sont soumis aux limites de quotas de déclencheurs Apps Script .
Docs
Forms*
Sheets
Slides