Einfache Trigger

Mithilfe von Triggern kann Apps Script eine Funktion automatisch ausführen, wenn ein bestimmtes Ereignis, wie das Öffnen eines Dokuments. Einfache Trigger sind eine Gruppe von reservierten Funktionen, die in Apps Script integriert sind, wie z. B. die Funktion onOpen(e), Sie wird ausgeführt, wenn ein Nutzer eine Datei aus Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare öffnet. Installierbare Trigger bieten mehr als einfache Trigger, müssen jedoch vor der Verwendung aktiviert werden. Für beide Trigger-Typen gibt Apps Script die ausgelöste Funktion an Ereignisobjekt, das Informationen enthält in dem das Ereignis aufgetreten ist.

Erste Schritte

Um einen einfachen Trigger zu verwenden, erstellen Sie einfach eine Funktion, die einen dieser reservierte Funktionsnamen:

  • onOpen(e) wird ausgeführt, wenn ein Nutzer eine Tabelle, ein Dokument, eine Präsentation das der Nutzer bearbeiten darf.
  • onInstall(e) wird ausgeführt, wenn ein Nutzer ein Editor-Add-on direkt von der Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare.
  • onEdit(e) wird ausgeführt, wenn ein Nutzer einen Wert in einer Tabelle ändert.
  • onSelectionChange(e) wird ausgeführt, wenn ein Nutzer die Auswahl in einer Tabelle ändert.
  • doGet(e) wird ausgeführt, wenn ein Nutzer eine Web-App besucht oder ein Programm sendet eine HTTP-GET-Anfrage an eine Web-App.
  • doPost(e) wird ausgeführt, wenn ein Programm eine HTTP-POST-Anfrage an eine Webanwendung sendet.

Der e-Parameter in den Funktionsnamen oben ist ein Ereignisobjekt, das an den . Das -Objekt enthält Informationen über den Kontext, der den Fehler verursacht hat. ausgelöst werden soll. Die Verwendung dieses Triggers ist jedoch optional.

Einschränkungen

Da einfache Trigger automatisch ausgelöst werden, ohne dass der Nutzer danach gefragt wird unterliegen mehreren Einschränkungen:

  • Das Skript muss an ein Google-Konto gebunden sein. Google Tabellen-, Google Präsentationen-, Google Docs- oder Google Formulare-Dateien bzw. Add-on, das eine von für diese Anwendungen.
  • Sie werden nicht ausgeführt, wenn eine Datei im Lese- oder Kommentarmodus geöffnet wird.
  • Skriptausführungen und API-Anfragen führen nicht zum Ausführen von Triggern. Beispiel: Range.setValue() wird angerufen zum Bearbeiten einer Zelle führt nicht dazu, dass der onEdit-Trigger der Tabelle ausgeführt wird.
  • Sie können nicht auf Dienste zugreifen, die Folgendes erfordern: Autorisierung. Beispiel: kann ein einfacher Trigger keine E-Mail senden, Der Gmail-Dienst erfordert eine Autorisierung, aber kann ein einfacher Trigger eine Phrase mit der Sprachdienst (anonym).
  • Er kann die Datei ändern, an die er gebunden ist, aber keinen Zugriff auf andere Dateien. da dies eine Autorisierung erfordert.
  • Sie sind in der Lage, die Identität des aktuellen Nutzers zu ermitteln, abhängig von komplexe Sicherheitsbeschränkungen.
  • Sie dürfen nicht länger als 30 Sekunden laufen.
  • Unter bestimmten Umständen Editor-Add-ons führen das onOpen(e) aus. und onEdit(e) einfache Trigger in einem Modus ohne Autorisierung, der einige zusätzliche Komplikationen. Weitere Informationen finden Sie in der Leitfaden zum Autorisierungslebenszyklus des Add-ons.
  • Einfache Trigger unterliegen einem Apps Script-Trigger die Kontingentlimits.

Diese Einschränkungen gelten nicht für doGet(e) oder doPost(e).

onOpen(e)

Der Trigger onOpen(e) wird automatisch ausgeführt, wenn ein Nutzer eine Tabelle öffnet. Dokumente, Präsentationen oder Formulare, für die sie Bearbeitungsrechte haben. Der Parameter wird der Trigger nicht ausgeführt, wenn Sie ein Formular ausfüllen, sondern nur, wenn das Formular für bearbeiten.) onOpen(e) wird am häufigsten verwendet, um benutzerdefinierte Menüpunkte auf Google Tabellen, Google Präsentationen, Google Docs oder Formulare:

triggers/triggers.gs
/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 * @see https://developers.google.com/apps-script/guides/triggers#onopene
 */
function onOpen(e) {
  // Add a custom menu to the spreadsheet.
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
      .createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addToUi();
}

onInstall(e)

Der Trigger onInstall(e) wird automatisch ausgeführt, wenn ein Nutzer ein Editor-Add-on direkt von der Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare. Der Trigger wird nicht ausgeführt, installiert das Add-on über die Google Workspace Marketplace Website. Beachten Sie, dass Es gibt bestimmte Einschränkungen im Hinblick auf die Möglichkeiten von onInstall(e). Weitere Informationen zu Autorisierung. Am häufigsten wird onInstall(e) verwendet, indem einfach onOpen(e) aufgerufen wird, um benutzerdefinierten Menüs. Denn wenn ein Add-on installiert ist, ist die Datei bereits geöffnet. Daher wird onOpen(e) nicht automatisch ausgeführt, es sei denn, die Datei wird wieder geöffnet.

triggers/triggers.gs
/**
 * The event handler triggered when installing the add-on.
 * @param {Event} e The onInstall event.
 * @see https://developers.google.com/apps-script/guides/triggers#oninstalle
 */
function onInstall(e) {
  onOpen(e);
}

onEdit(e)

Der Trigger onEdit(e) wird automatisch ausgeführt, wenn ein Nutzer einen beliebigen Wert ändert. Zelle in einer Tabellenkalkulation. Für die meisten onEdit(e)-Trigger werden die Informationen im event-Objekt, um entsprechend zu reagieren. Beispielsweise legt die Funktion onEdit(e) unten einen Kommentar für die Zelle fest, die erfasst den Zeitpunkt der letzten Bearbeitung.

triggers/triggers.gs
/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 * @see https://developers.google.com/apps-script/guides/triggers#onedite
 */
function onEdit(e) {
  // Set a comment on the edited cell to indicate when it was changed.
  const range = e.range;
  range.setNote('Last modified: ' + new Date());
}

onSelectionChange(e)

Der Trigger onSelectionChange(e) wird automatisch ausgeführt, wenn ein Nutzer die Auswahl in einer Tabelle. Zum Aktivieren dieses Triggers müssen Sie den nach dem Hinzufügen des Triggers und jedes Mal, wenn die Tabelle geöffnet wird.

Wenn die Auswahl innerhalb kurzer Zeit zwischen mehreren Zellen verschoben wird, wird eine Auswahl Änderungsereignisse übersprungen, um die Latenz zu verringern. Wenn z. B. viele Auswahlmöglichkeiten Änderungen werden innerhalb von zwei Sekunden ausgeführt, wobei nur die erste und die letzte Durch Änderungen an der Auswahl wird der Trigger onSelectionChange(e) aktiviert.

Im Beispiel unten Bei Auswahl einer leeren Zelle legt die onSelectionChange(e)-Funktion den um den Hintergrund rot zu markieren.

triggers/triggers.gs
/**
 * The event handler triggered when the selection changes in the spreadsheet.
 * @param {Event} e The onSelectionChange event.
 * @see https://developers.google.com/apps-script/guides/triggers#onselectionchangee
 */
function onSelectionChange(e) {
  // Set background to red if a single empty cell is selected.
  const range = e.range;
  if (range.getNumRows() === 1 &&
    range.getNumColumns() === 1 &&
    range.getCell(1, 1).getValue() === '') {
    range.setBackground('red');
  }
}

doGet(e) und doPost(e)

Der Trigger doGet(e) wird automatisch ausgeführt, wenn ein Nutzer eine Eine Webanwendung oder ein Programm sendet eine HTTP-GET-Anfrage für eine Web-App. doPost(e) wird ausgeführt, wenn ein Programm eine HTTP-POST-Anfrage an einen Web-App. Diese Auslöser werden in den Leitfäden zur Web-Apps, HTML-Dienst, und Inhaltsdienste. Beachten Sie, dass doGet(e) und doPost(e) unterliegen nicht den oben aufgeführten Einschränkungen.

Verfügbare Triggertypen

Wenn die Einschränkungen für einfache Auslöser verhindern, einen installierbaren Trigger, funktionieren. In der folgenden Tabelle sehen Sie, welche Triggertypen die für jeden Ereignistyp verfügbar sind. z. B. Google Tabellen, Google Präsentationen, Google Formulare und Alle Dokumente unterstützen einfache offene Trigger, aber nur Google Tabellen, Google Docs und Google Formulare werden unterstützt. installierbare offene Trigger.

Ereignis Einfache Trigger Installierbare Trigger
Öffnen
<ph type="x-smartling-placeholder">
</ph>
Tabellen
<ph type="x-smartling-placeholder">
</ph> .
Google Präsentationen
<ph type="x-smartling-placeholder">
</ph>
Formulare*
<ph type="x-smartling-placeholder">
</ph>
Google Docs

function onOpen(e)

<ph type="x-smartling-placeholder">
</ph>
Tabellen
<ph type="x-smartling-placeholder">
</ph> .
Formulare*
<ph type="x-smartling-placeholder">
</ph>
Google Docs
Bearbeiten
<ph type="x-smartling-placeholder">
</ph>
Tabellen

function onEdit(e)

<ph type="x-smartling-placeholder">
</ph>
Tabellen
Auswahländerung
<ph type="x-smartling-placeholder">
</ph>
Tabellen

function onSelectionChange(e)

Installieren
<ph type="x-smartling-placeholder">
</ph>
Tabellen
<ph type="x-smartling-placeholder">
</ph> .
Google Präsentationen
<ph type="x-smartling-placeholder">
</ph>
Google Formulare
<ph type="x-smartling-placeholder">
</ph>
Google Docs

function onInstall(e)

Ändern
<ph type="x-smartling-placeholder">
</ph>
Tabellen
Formular senden
<ph type="x-smartling-placeholder">
</ph>
Tabellen
<ph type="x-smartling-placeholder">
</ph> .
Google Formulare
Zeitgesteuert (Uhr)
<ph type="x-smartling-placeholder">
</ph>
Tabellen
<ph type="x-smartling-placeholder">
</ph> .
Google Präsentationen
<ph type="x-smartling-placeholder">
</ph>
Google Formulare
<ph type="x-smartling-placeholder">
</ph>
Google Docs
<ph type="x-smartling-placeholder">
</ph>
Eigenständig
Get
<ph type="x-smartling-placeholder">
</ph>
Eigenständig

function doGet(e)

Posten
<ph type="x-smartling-placeholder">
</ph>
Eigenständig

function doPost(e)

* Das Ereignis „open“ für Google Formulare tritt nicht ein, wenn ein Nutzer ein um sie zu beantworten, als wenn ein Bearbeiter das Formular öffnet, um es zu ändern.