Come i trigger semplici, i trigger installabili consentono a Google Apps Script di eseguire automaticamente una funzione quando si verifica un determinato evento, come l'apertura di un documento. I trigger installabili, tuttavia, offrono maggiore flessibilità rispetto ai trigger semplici: possono chiamare servizi che richiedono autorizzazione, offrono diversi tipi di eventi aggiuntivi, inclusi i trigger basati sul tempo (orologio), e possono essere controllati a livello di programmazione. Per gli attivatori semplici e installabili, Apps Script passa alla funzione attivata un oggetto evento che contiene informazioni sul contesto in cui si è verificato l'evento.
Per saperne di più su come utilizzare i trigger nei componenti aggiuntivi, vedi Trigger per i componenti aggiuntivi di Google Workspace.
Restrizioni
Anche se i trigger installabili offrono maggiore flessibilità rispetto ai trigger semplici, sono comunque soggetti a diverse limitazioni:
- Non vengono eseguiti se un file viene aperto in modalità di sola lettura (visualizzazione o commento). Per gli script autonomi, gli utenti devono disporre almeno dell'accesso in visualizzazione al file di script per l'esecuzione corretta dei trigger.
Le esecuzioni di script e le richieste API non causano l'esecuzione dei trigger. Ad esempio, la chiamata
FormResponse.submit()per inviare una nuova risposta al modulo non attiva l'esecuzione del trigger di invio del modulo.Un'eccezione a questa limitazione è
Form.submitGrades(). Se il tuo codice utilizza un triggeronFormSubmit, la chiamata aForm.submitGrades()attiva la condizioneonFormSubmite causa un ciclo infinito. Per evitare il ciclo infinito, aggiungi codice che controlli se i voti esistono già prima di chiamaresubmitGrades().I trigger installabili vengono sempre eseguiti con l'account della persona che li ha creati. Ad esempio, se crei un trigger aperto installabile, questo viene eseguito quando il tuo collega apre il documento (se ha accesso in modifica), ma viene eseguito come tuo account. Ciò significa che se crei un trigger per inviare un'email quando viene aperto un documento, l'email viene sempre inviata dal tuo account, non necessariamente dall'account che ha aperto il documento. Tuttavia, puoi creare un trigger installabile per ogni account, il che comporta l'invio di un'email da ogni account.
Un determinato account non può visualizzare i trigger installati da un secondo account, anche se il primo account può comunque attivarli.
I trigger installabili sono soggetti ai limiti di quota dei trigger di Apps Script.
Trigger basati sul tempo
Un attivatore basato sul tempo (chiamato anche attivatore orologio) è simile a un cron job in Unix. I trigger basati sul tempo consentono l'esecuzione degli script a un'ora specifica o a intervalli ricorrenti, con una frequenza che può variare da una volta al minuto a una volta al mese. Un componente aggiuntivo può utilizzare un trigger basato sul tempo al massimo una volta all'ora. L'ora potrebbe essere leggermente casuale. Ad esempio, se crei un trigger ricorrente alle 9:00, Apps Script sceglie un orario compreso tra le 9:00 e le 10:00, quindi mantiene la tempistica coerente di giorno in giorno, in modo che trascorrano 24 ore prima che il trigger venga attivato di nuovo.
Trigger basati su eventi
I trigger basati su eventi installabili sono concettualmente simili ai
trigger semplici come
onOpen(), ma possono rispondere a eventi aggiuntivi e si comportano
in modo diverso.
Ad esempio, il trigger open installabile per Google Sheets si attiva ogni volta che
il foglio di lavoro viene aperto da qualsiasi utente con accesso in modifica, proprio come il trigger
onOpen() semplice. Tuttavia, la versione installabile può chiamare
servizi che richiedono
autorizzazione. La versione
installabile viene eseguita con l'autorizzazione dell'utente che ha creato il trigger, anche
se un altro utente con accesso in modifica apre il foglio di lavoro.
Esistono diversi trigger installabili per le applicazioni Google Workspace:
- Un trigger apertura installabile viene eseguito quando un utente apre un foglio di lavoro, un documento o un modulo che ha l'autorizzazione a modificare.
- Un trigger modifica installabile viene eseguito quando un utente modifica un valore in un foglio di lavoro.
- Un trigger modifica installabile viene eseguito quando un utente modifica la struttura di un foglio di lavoro, ad esempio aggiungendo un nuovo foglio o rimuovendo una colonna.
- Un trigger invio modulo installabile viene eseguito quando un utente risponde a un modulo. Esistono due versioni del trigger di invio del modulo, una per Moduli Google e una per Fogli se il modulo viene inviato a un foglio di lavoro.
- Un trigger evento di calendario installabile viene eseguito quando gli eventi di calendario di un utente vengono aggiornati, creati, modificati o eliminati.
Gli attivatori installabili sono disponibili negli script autonomi e associati. Ad esempio, uno script autonomo può creare a livello di programmazione un trigger installabile per un file Fogli Google arbitrario chiamando TriggerBuilder.forSpreadsheet(key) e passando l'ID del foglio di lavoro.
Gestire manualmente i trigger
Per creare manualmente un trigger installabile nell'editor di script, segui questi passaggi:
- Apri il progetto Apps Script.
- A sinistra, fai clic su Attivatori .
- In basso a destra, fai clic su Aggiungi trigger.
- Seleziona e configura il tipo di trigger che vuoi creare.
- Fai clic su Salva.
Gestire i trigger in modo programmatico
Crea ed elimina trigger in modo programmatico con il
servizio Script. Inizia chiamando
ScriptApp.newTrigger(functionName),
che restituisce un
TriggerBuilder.
L'esempio seguente mostra come creare due trigger basati sul tempo: uno che viene attivato ogni 6 ore e uno che viene attivato ogni lunedì alle 9:00 (nel fuso orario impostato per lo script).
L'esempio successivo mostra come creare un attivatore open installabile per un
foglio di lavoro. A differenza di un semplice trigger onOpen(), lo script per
il trigger installabile non deve essere associato al foglio di lavoro. Per creare
questo trigger da uno script autonomo, sostituisci SpreadsheetApp.getActive() con
una chiamata a
SpreadsheetApp.openById(id).
Per modificare in modo programmatico un trigger installabile esistente, devi eliminarlo e crearne uno nuovo. Se in precedenza hai memorizzato l'ID di un trigger, eliminalo passando l'ID come argomento alla seguente funzione.
Prima di creare un trigger, verifica che la funzione associata disponga di tutte le autorizzazioni OAuth necessarie.
Errori negli attivatori
Quando viene attivato un trigger installabile, ma la funzione genera un'eccezione o non viene eseguita correttamente, sullo schermo non viene visualizzato alcun messaggio di errore. Dopo tutto, quando viene eseguito un trigger basato sul tempo o un altro utente attiva il trigger di invio del modulo, potresti non essere nemmeno al computer.
Apps Script invia invece un'email come la seguente:
From: noreply-apps-scripts-notifications@google.com Subject: Summary of failures for Apps Script Your script has recently failed to finish successfully. A summary of the failure(s) is shown below.
L'email include un link per disattivare o riconfigurare il trigger. Se lo script è associato a un file Fogli, Documenti o Moduli Google, l'email include anche un link a quel file. Questi link ti consentono di disattivare il trigger o modificare lo script per correggere il bug.
Per risolvere gli errori nello script, fai clic sul link nell'email di notifica per aprire il progetto di script. Una volta aperto il progetto, visualizza i log di esecuzione facendo clic su Esecuzioni nel pannello di navigazione a sinistra. I log mostrano le esecuzioni non riuscite e includono messaggi di errore per aiutarti a diagnosticare e risolvere il problema.
I trigger installabili creati dai componenti aggiuntivi non inviano agli utenti queste notifiche via email.
Per esaminare tutti i trigger associati al tuo Account Google e disattivare quelli che non ti servono più, segui questi passaggi:
- Visita il sito
script.google.com. - A sinistra, fai clic su I miei attivatori.
- Per eliminare un trigger, fai clic su Altro a destra del trigger > Elimina trigger.
Se un trigger viene disattivato, vengono disattivate anche le relative notifiche di errore. Le notifiche di errore sono parte integrante di un trigger attivo. Di conseguenza, per interrompere la ricezione di tutte le notifiche di errore per un trigger specifico, disattiva o elimina il trigger stesso. Mentre un trigger è attivo, puoi regolare solo la frequenza di queste notifiche.
Simple triggers like `onOpen()` can't be deactivated from this
page; instead, edit the appropriate script and remove or rename
the `onOpen()` function.
Trigger nei componenti aggiuntivi
Oltre agli attivatori installabili, utilizza gli attivatori manifest nei componenti aggiuntivi. Per saperne di più, vedi Trigger per i componenti aggiuntivi Google Workspace.