Class ScriptApp

ScriptApp

Auf Script-Veröffentlichungen und Trigger zugreifen und sie bearbeiten. Mit dieser Klasse können Nutzer Script-Trigger erstellen und die Veröffentlichung des Scripts als Dienst steuern.

Attribute

AttributTypBeschreibung
AuthModeAuthModeEine Aufzählung, die angibt, welche Kategorien von autorisierten Diensten in Apps Script über eine ausgelöste Funktion ausgeführt werden können.
AuthorizationStatusAuthorizationStatusEine Aufzählung, die den Autorisierungsstatus eines Scripts angibt.
EventTypeEventTypeEine Aufzählung, die den Typ des ausgelösten Ereignisses angibt.
InstallationSourceInstallationSourceEine Aufzählung, die angibt, wie das Script als Add-on für den Nutzer installiert wurde.
TriggerSourceTriggerSourceEine Aufzählung, die die Quelle des Ereignisses angibt, das den Trigger auslöst.
WeekDayWeekdayEine Aufzählung, die die Wochentage darstellt.

Methoden

MethodeRückgabetypKurzbeschreibung
deleteTrigger(trigger)voidDer angegebene Trigger wird entfernt, sodass er nicht mehr ausgeführt wird.
getAuthorizationInfo(authMode)AuthorizationInfoRuft ein Objekt ab, das prüft, ob der Nutzer die Autorisierung für alle Scriptanforderungen erteilt hat.
getAuthorizationInfo(authMode, oAuthScopes)AuthorizationInfoHiermit wird ein Objekt abgerufen, das prüft, ob der Nutzer die Autorisierung für die angeforderten Bereiche erteilt hat.
getIdentityToken()StringRuft ein OpenID Connect-Identitätstoken für den effektiven Nutzer ab, wenn der Umfang openid gewährt wurde.
getInstallationSource()InstallationSourceGibt einen Enum-Wert zurück, der angibt, wie das Script als Add-on für den aktuellen Nutzer installiert wurde (z. B. ob der Nutzer es selbst über den Chrome Web Store installiert hat oder ob es von einem Domainadministrator für alle Nutzer installiert wurde).
getOAuthToken()StringRuft das OAuth 2.0-Zugriffstoken für den effektiven Nutzer ab.
getProjectTriggers()Trigger[]Alle installierbaren Trigger abrufen, die mit dem aktuellen Projekt und dem aktuellen Nutzer verknüpft sind.
getScriptId()StringRuft die eindeutige ID des Script-Projekts ab.
getService()ServiceHiermit wird ein Objekt abgerufen, mit dem die Veröffentlichung des Scripts als Webanwendung gesteuert wird.
getUserTriggers(document)Trigger[]Hiermit werden alle installierbaren Trigger abgerufen, die diesem Nutzer im angegebenen Dokument gehören, und zwar nur für dieses Script oder Add-on.
getUserTriggers(form)Trigger[]Hiermit werden alle installierbaren Trigger abgerufen, die diesem Nutzer im angegebenen Formular gehören, und zwar nur für dieses Script oder Add-on.
getUserTriggers(spreadsheet)Trigger[]Hiermit werden alle installierbaren Trigger abgerufen, die diesem Nutzer in der angegebenen Tabelle gehören, und zwar nur für dieses Script oder Add-on.
invalidateAuth()voidMacht die Autorisierung ungültig, die der effektive Nutzer zum Ausführen des aktuellen Scripts hat.
newStateToken()StateTokenBuilderErstellt einen Builder für ein Statustoken, das in einer Callback-API (z. B. einem OAuth-Ablauf) verwendet werden kann.
newTrigger(functionName)TriggerBuilderHiermit wird der Prozess zum Erstellen eines installierbaren Triggers gestartet, der beim Auslösen eine bestimmte Funktion aufruft.
requireAllScopes(authMode)voidPrüft, ob der Nutzer seine Einwilligung für alle vom Script angeforderten Bereiche erteilt hat.
requireScopes(authMode, oAuthScopes)voidPrüft, ob der Nutzer die Einwilligung für die angeforderten Zugriffsbereiche erteilt hat.

Detaillierte Dokumentation

deleteTrigger(trigger)

Der angegebene Trigger wird entfernt und wird nicht mehr ausgeführt.

// Deletes all triggers in the current project.
const triggers = ScriptApp.getProjectTriggers();
for (let i = 0; i < triggers.length; i++) {
  ScriptApp.deleteTrigger(triggers[i]);
}

Parameter

NameTypBeschreibung
triggerTriggerDer zu löschende Trigger.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

Ruft ein Objekt ab, das prüft, ob der Nutzer die Autorisierung für alle Scriptanforderungen erteilt hat. Das Objekt enthält auch eine Autorisierungs-URL, über die Nutzer diese Berechtigungen gewähren können, falls eine der Scriptanforderungen nicht autorisiert ist.

Einige Scriptausführungen können gestartet werden, ohne dass der Nutzer für alle erforderlichen Bereiche, die vom Script verwendet werden, seine Einwilligung erteilt hat. Mit den Informationen in diesem Objekt können Sie den Zugriff auf Codeabschnitte steuern, für die bestimmte Bereiche erforderlich sind, und die Autorisierung dieser Bereiche für nachfolgende Ausführungen anfordern.

const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
const status = authInfo.getAuthorizationStatus();
const url = authInfo.getAuthorizationUrl();

Parameter

NameTypBeschreibung
authModeAuthModeDer Autorisierungsmodus, für den Autorisierungsinformationen angefordert werden. In fast allen Fällen sollte der Wert für authMode ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL) sein, da bei keinem anderen Autorisierungsmodus Nutzer die Autorisierung erteilen müssen.

Rückflug

AuthorizationInfo: Ein Objekt, das Informationen zum Autorisierungsstatus des Nutzers liefern kann.


getAuthorizationInfo(authMode, oAuthScopes)

Hiermit wird ein Objekt abgerufen, das prüft, ob der Nutzer die Autorisierung für die angeforderten Bereiche erteilt hat. Das Objekt enthält auch eine Autorisierungs-URL, über die Nutzer diese Berechtigungen gewähren können, falls einer der angeforderten Bereiche nicht autorisiert ist.

Einige Scriptausführungen können gestartet werden, ohne dass der Nutzer für alle erforderlichen Bereiche, die vom Script verwendet werden, seine Einwilligung erteilt hat. Mit den Informationen in diesem Objekt können Sie den Zugriff auf Codeabschnitte steuern, für die bestimmte Bereiche erforderlich sind, und die Autorisierung dieser Bereiche für nachfolgende Ausführungen anfordern. Gültige oder vom Script nicht erforderliche Bereiche führen zu einem Fehler.

const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL, [
  'https://www.googleapis.com/auth/documents',
  'https://www.googleapis.com/auth/presentations',
]);
const status = authInfo.getAuthorizationStatus();
const url = authInfo.getAuthorizationUrl();

Parameter

NameTypBeschreibung
authModeAuthModeDer Autorisierungsmodus, für den Autorisierungsinformationen angefordert werden. In fast allen Fällen sollte der Wert für authMode ScriptApp.AuthMode.FULL sein, da bei keinem anderen Autorisierungsmodus Nutzer die Autorisierung erteilen müssen.
oAuthScopesString[]Die OAuth-Bereiche, für die Autorisierungsinformationen angefordert werden.

Rückflug

AuthorizationInfo: Ein Objekt mit Informationen zum Autorisierungsstatus des Nutzers und einer Autorisierungs-URL für den Fall, dass einige Einwilligungen fehlen.


getIdentityToken()

Ruft ein OpenID Connect-Identitätstoken für den effektiven Nutzer ab, wenn der Umfang openid gewährt wurde. Dieser Bereich ist nicht standardmäßig enthalten. Sie müssen ihn als expliziten Bereich in die Manifestdatei einfügen, um ihn anzufordern. Fügen Sie die Bereiche https://www.googleapis.com/auth/userinfo.email oder https://www.googleapis.com/auth/userinfo.profile hinzu, um zusätzliche Nutzerinformationen im Token zurückzugeben.

Das zurückgegebene ID-Token ist ein codiertes JSON Web Token (JWT). Es muss decodiert werden, um Informationen daraus zu extrahieren. In den folgenden Beispielen wird gezeigt, wie das Token decodiert und die Google-Profil-ID des effektiven Nutzers extrahiert wird.

const idToken = ScriptApp.getIdentityToken();
const body = idToken.split('.')[1];
const decoded = Utilities
                    .newBlob(
                        Utilities.base64Decode(body),
                        )
                    .getDataAsString();
const payload = JSON.parse(decoded);

Logger.log(`Profile ID: ${payload.sub}`);
Eine vollständige Liste der zurückgegebenen Felder (Anspruchsrechte) findest du in der OpenID Connect-Dokumentation.

Rückflug

String: Das Identitätstoken, falls verfügbar, andernfalls null.


getInstallationSource()

Gibt einen Enum-Wert zurück, der angibt, wie das Script als Add-on für den aktuellen Nutzer installiert wurde (z. B. ob der Nutzer es selbst über den Chrome Web Store installiert hat oder ob es von einem Domainadministrator für alle Nutzer installiert wurde).

Rückflug

InstallationSource – Die Installationsquelle.


getOAuthToken()

Ruft das OAuth 2.0-Zugriffstoken für den effektiven Nutzer ab. Wenn die OAuth-Bereiche des Scripts ausreichen, um eine andere Google API zu autorisieren, für die normalerweise ein eigener OAuth-Ablauf erforderlich ist (z. B. Google Picker), können Scripts die zweite Autorisierungsanfrage umgehen, indem sie stattdessen dieses Token übergeben. Das Token läuft nach einer bestimmten Zeit ab (mindestens ein paar Minuten). Scripts sollten Autorisierungsfehler behandeln und diese Methode aufrufen, um bei Bedarf ein neues Token abzurufen.

Das von dieser Methode zurückgegebene Token enthält nur die Bereiche, die das Script derzeit benötigt. Berechtigungen, die zuvor autorisiert wurden, aber vom Script nicht mehr verwendet werden, sind nicht im zurückgegebenen Token enthalten. Wenn zusätzliche OAuth-Bereiche erforderlich sind, die über das Script selbst hinausgehen, können sie in der Manifestdatei des Scripts angegeben werden.

Rückflug

String: Eine Stringdarstellung des OAuth 2.0-Tokens.


getProjectTriggers()

Alle installierbaren Trigger abrufen, die mit dem aktuellen Projekt und dem aktuellen Nutzer verknüpft sind.

Logger.log(
    `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`,
);

Rückflug

Trigger[]: Ein Array der Trigger des aktuellen Nutzers, die mit diesem Projekt verknüpft sind.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

Ruft die eindeutige ID des Script-Projekts ab. Dies ist die bevorzugte Methode, um die eindeutige Kennung für das Script-Projekt abzurufen, im Gegensatz zu getProjectKey(). Diese ID kann an allen Stellen verwendet werden, an denen zuvor der Projektschlüssel angegeben wurde.

Rückflug

String: Die ID des Scriptprojekts.


getService()

Hiermit wird ein Objekt abgerufen, mit dem die Veröffentlichung des Scripts als Webanwendung gesteuert wird.

// Get the URL of the published web app.
const url = ScriptApp.getService().getUrl();

Rückflug

Service: Ein Objekt, mit dem das Veröffentlichen des Scripts als Webanwendung beobachtet und gesteuert wird.


getUserTriggers(document)

Hiermit werden alle installierbaren Trigger abgerufen, die diesem Nutzer im angegebenen Dokument gehören, und zwar nur für dieses Script oder Add-on. Mit dieser Methode können Sie nicht die Trigger sehen, die mit anderen Scripts verknüpft sind.

const doc = DocumentApp.getActiveDocument();
const triggers = ScriptApp.getUserTriggers(doc);
// Log the handler function for the first trigger in the array.
Logger.log(triggers[0].getHandlerFunction());

Parameter

NameTypBeschreibung
documentDocumentEine Google Docs-Datei, die installierbare Trigger enthalten kann.

Rückflug

Trigger[]: Ein Array von Auslösern, die diesem Nutzer im angegebenen Dokument gehören.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

Hiermit werden alle installierbaren Trigger abgerufen, die diesem Nutzer im angegebenen Formular gehören, und zwar nur für dieses Script oder Add-on. Mit dieser Methode können Sie nicht die Trigger sehen, die mit anderen Scripts verknüpft sind.

const form = FormApp.getActiveForm();
const triggers = ScriptApp.getUserTriggers(form);
// Log the trigger source for the first trigger in the array.
Logger.log(triggers[0].getTriggerSource());

Parameter

NameTypBeschreibung
formFormEine Google Forms-Datei, die installierbare Trigger enthalten kann.

Rückflug

Trigger[]: Ein Array von Triggern, die diesem Nutzer im angegebenen Formular gehören.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

Hiermit werden alle installierbaren Trigger abgerufen, die diesem Nutzer in der angegebenen Tabelle gehören, und zwar nur für dieses Script oder Add-on. Mit dieser Methode können Sie nicht die Trigger sehen, die mit anderen Scripts verknüpft sind.

const ss = SpreadsheetApp.getActiveSpreadsheet();
const triggers = ScriptApp.getUserTriggers(ss);
// Log the event type for the first trigger in the array.
Logger.log(triggers[0].getEventType());

Parameter

NameTypBeschreibung
spreadsheetSpreadsheetEine Google Tabellen-Datei, die installierbare Trigger enthalten kann.

Rückflug

Trigger[]: Ein Array von Triggern, die diesem Nutzer in der angegebenen Tabelle gehören.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

Macht die Autorisierung ungültig, die der effektive Nutzer zum Ausführen des aktuellen Scripts hat. Damit werden alle Berechtigungen für das aktuelle Script ungültig gemacht. Das ist besonders nützlich für Funktionen, die als einmalige Autorisierung getaggt sind. Da Funktionen für die einmalige Autorisierung nur beim ersten Ausführen nach der Autorisierung des Scripts aufgerufen werden können, müssen Sie alle Autorisierungen für das Script widerrufen, wenn Sie danach eine Aktion ausführen möchten, damit der Nutzer das Autorisierungsdialogfeld noch einmal sehen kann.

ScriptApp.invalidateAuth();

Löst

Error – wenn die Aufhebung fehlschlägt


newStateToken()

Erstellt einen Builder für ein Statustoken, das in einer Callback-API (z. B. einem OAuth-Ablauf) verwendet werden kann.

// Generate a callback URL, given the name of a callback function. The script
// does not need to be published as a web app; the /usercallback URL suffix
// replaces /edit in any script's URL.
function getCallbackURL(callbackFunction) {
  // IMPORTANT: Replace string below with the URL from your script, minus the
  // /edit at the end.
  const scriptUrl =
      'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';
  const urlSuffix = '/usercallback?state=';
  const stateToken = ScriptApp.newStateToken()
                         .withMethod(callbackFunction)
                         .withTimeout(120)
                         .createToken();
  return scriptUrl + urlSuffix + stateToken;
}

Bei den meisten OAuth2-Abläufen wird das state-Token direkt (nicht als Teil der Rückruf-URL) an den Autorisierungsendpunkt übergeben, der es dann als Teil der Rückruf-URL weitergibt.

Beispiel:

  • Das Script leitet den Nutzer zur OAuth2-Autorisierungs-URL weiter: https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
  • Der Nutzer klickt auf „Autorisieren“ und wird von der OAuth2-Autorisierungsseite zurück zu https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants weitergeleitet.
  • Die obige Weiterleitung (zurück zu http://script.google.com/...) führt dazu, dass der Browser eine Anfrage an /usercallback sendet, wodurch die von StateTokenBuilder.withMethod(method) angegebene Methode aufgerufen wird.

Rückflug

StateTokenBuilder: Ein Objekt, mit dem der Prozess zum Erstellen des Statustokens fortgesetzt wird.


newTrigger(functionName)

Hiermit wird der Prozess zum Erstellen eines installierbaren Triggers gestartet, der beim Auslösen eine bestimmte Funktion aufruft.

// Creates an edit trigger for a spreadsheet identified by ID.
ScriptApp.newTrigger('myFunction')
    .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')
    .onEdit()
    .create();

Parameter

NameTypBeschreibung
functionNameStringDie Funktion, die aufgerufen werden soll, wenn der Trigger ausgelöst wird. Sie können Funktionen aus den enthaltenen Bibliotheken wie Library.libFunction1 verwenden.

Rückflug

TriggerBuilder: Ein Objekt, mit dem Sie den Trigger erstellen können.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • https://www.googleapis.com/auth/script.scriptapp

requireAllScopes(authMode)

Prüft, ob der Nutzer seine Einwilligung für alle vom Script angeforderten Bereiche erteilt hat. Verwenden Sie diese Methode, wenn ein Ausführungsablauf auf allen Bereichen basiert, die ein Script anfordert. Wenn eine Einwilligung fehlt, beendet diese Methode die aktuelle Ausführung und zeigt eine Autorisierungsaufforderung an, um die fehlenden Einwilligungen anzufordern.

Diese Methode funktioniert nur, wenn Nutzer das Script über eine Oberfläche ausführen, die die detaillierte Einwilligung unterstützt, z. B. über die Apps Script IDE. Wenn das Script mit fehlenden Einwilligungen von einer nicht unterstützten Oberfläche wie einem Google Workspace-Add-on ausgeführt wird, wird zu Beginn der Ausführung eine Autorisierungsanfrage angezeigt, um alle Bereiche anzufordern.

ScriptApp.requireAllScopes(ScriptApp.AuthMode.FULL);

Parameter

NameTypBeschreibung
authModeAuthModeDer Autorisierungsmodus, für den Script-Zugriffsbereiche ausgewertet werden müssen. In fast allen Fällen sollte der Wert für authMode ScriptApp.AuthMode.FULL sein, da bei keinem anderen Autorisierungsmodus Nutzer die Autorisierung erteilen müssen.

requireScopes(authMode, oAuthScopes)

Prüft, ob der Nutzer seine Einwilligung für die angeforderten Zugriffsbereiche erteilt hat. Verwenden Sie diese Methode, wenn ein Ausführungsablauf auf einen oder mehrere Dienste angewiesen ist. Wenn eine der angegebenen Einwilligungen fehlt, wird die aktuelle Ausführung durch diese Methode beendet und eine Autorisierungsaufforderung angezeigt, um die fehlenden Einwilligungen anzufordern. Gültige oder vom Script nicht erforderliche Bereiche führen zu einem Fehler.

Diese Methode funktioniert nur, wenn Nutzer das Script über eine Oberfläche ausführen, die die detaillierte Einwilligung unterstützt, z. B. über die Apps Script IDE. Wenn das Script mit fehlenden Einwilligungen von einer nicht unterstützten Oberfläche wie einem Google Workspace-Add-on ausgeführt wird, wird zu Beginn der Ausführung eine Autorisierungsanfrage angezeigt, um alle Bereiche anzufordern.

ScriptApp.requireScopes(ScriptApp.AuthMode.FULL, [
  'https://www.googleapis.com/auth/documents',
  'https://www.googleapis.com/auth/presentations',
]);

Parameter

NameTypBeschreibung
authModeAuthModeDer Autorisierungsmodus, für den die angeforderten Bereiche ausgewertet werden müssen. In fast allen Fällen sollte der Wert für authMode ScriptApp.AuthMode.FULL sein, da bei keinem anderen Autorisierungsmodus Nutzer die Autorisierung erteilen müssen.
oAuthScopesString[]Die OAuth-Bereiche, die für die Ausführung des jeweiligen Ablaufs erforderlich sind.

Eingestellte Methoden