Integrierte Google-Dienste

Google Apps Script bietet mehr als 30 integrierte Dienste für die Interaktion mit Nutzerdaten, anderen Google-Systemen und externen Systemen. Diese Dienste werden als globale Objekte bereitgestellt, ähnlich dem Standardobjekt Math von JavaScript. So bietet der Tabellenkalkulationsdienst von Apps Script beispielsweise wie Math Methoden wie random() und Konstanten wie PI, aber auch Methoden wie openById(id), Klassen (untergeordnete Objekte) wie Range und Enums wie DataValidationCriteria.

Die Referenzdokumentation für Dienste, die Google Workspace-Produkte steuern, finden Sie im Abschnitt „Google Workspace-Dienste“ unter der Überschrift „Referenz“ in der Seitenleiste dieser Website. Hilfsdienste (z. B. zum Erstellen von Benutzeroberflächen, zum Parsen von XML oder zum Schreiben von Logdaten) finden Sie im Abschnitt „Skriptdienste“.

Moderne JavaScript-Funktionen

Apps Script unterstützt zwei JavaScript-Laufzeitumgebungen: die moderne V8-Laufzeitumgebung und eine ältere, die vom Rhino JavaScript-Interpreter von Mozilla unterstützt wird.

Die V8-Laufzeitumgebung unterstützt die moderne ECMAScript-Syntax und ‑Funktionen. Die Rhino-Laufzeitumgebung basiert auf dem älteren JavaScript 1.6 -Standard sowie einigen Funktionen aus 1.7 und 1.8. Wählen Sie aus, welche Laufzeitumgebung Sie für Ihr Skript verwenden möchten. Wir empfehlen jedoch die V8-Laufzeitumgebung.

Jede Laufzeitumgebung unterstützt JavaScript-Klassen und ‑Objekte, die Ihrem Skript zusätzlich zu den integrierten und erweiterten Google-Diensten zur Verfügung stehen. Ihre Skripts können allgemeine Objekte wie Array, Date, RegExp, usw., sowie die Math und Object globalen Objekte verwenden.

Da Apps Script-Code auf den Servern von Google ausgeführt wird (mit der Ausnahme von HTML-Dienst Seiten), sind browserbasierte JavaScript-Funktionen wie die DOM-Manipulation oder die Window-API in Apps Script nicht verfügbar.

Automatische Vervollständigung

Der Skript-Editor bietet eine Funktion zur automatischen Vervollständigung, mit der die globalen Objekte sowie Methoden und Enums angezeigt werden, die im aktuellen Kontext des Skripts gültig sind. Vorschläge zur automatischen Vervollständigung werden automatisch angezeigt, wenn Sie nach einem globalen Objekt, einem Enum oder einem Methodenaufruf, der eine Apps Script-Klasse zurückgibt, einen Punkt eingeben. Beispiel:

  • Wenn Sie den vollständigen Namen eines globalen Objekts eingeben oder eines aus der automatischen Vervollständigung auswählen und dann . (einen Punkt) eingeben, werden alle Methoden und Enums für diese Klasse angezeigt.
  • Wenn Sie einige Zeichen eingeben, werden alle gültigen Vorschläge angezeigt, die mit diesen Zeichen beginnen.

Globale Objekte

Jeder Dienst bietet mindestens ein globales Objekt (auf oberster Ebene). Auf den Gmail-Dienst wird beispielsweise nur über das GmailApp Objekt zugegriffen. Einige Dienste bieten mehrere globale Objekte. Der Basisdienst umfasst beispielsweise vier globale Objekte: Browser, Logger, MimeType und Session.

Methoden

Die globalen Objekte fast aller integrierten oder erweiterten Dienste enthalten Methoden, die Daten oder eine Apps Script-Klasse zurückgeben. Skripts rufen Methoden in diesem Format auf:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

Ein Skript kann beispielsweise eine E-Mail senden, indem es die sendEmail(recipient, subject, body) Methode des Gmail-Dienstes so aufruft:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

Wenn eine Methode eine andere Apps Script-Klasse zurückgibt, verketten Sie die Methodenaufrufe in einer Zeile. Rückgabetypen werden sowohl in der automatischen Vervollständigung als auch in der Referenzdokumentation einer Methode angezeigt. Die Methode DocumentApp.create() gibt beispielsweise ein Documentzurück. Die folgenden beiden Codeabschnitte sind daher gleichwertig:

var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
    .appendParagraph('New paragraph.');

Untergeordnete Klassen

Jeder Dienst enthält eine oder mehrere untergeordnete Klassen, auf die Sie nicht über die oberste Ebene als globales Objekt zugreifen können. Sie können diese Klassen auch nicht mit dem new Schlüsselwort erstellen, wie Sie es bei Standard-JavaScript-Klassen wie Date tun würden. Um auf eine untergeordnete Klasse zuzugreifen, müssen Sie eine Methode aufrufen, die sie zurückgibt. Wenn Sie nicht sicher sind, wie Sie auf eine bestimmte Klasse zugreifen, rufen Sie die Stammseite der Referenzdokumentation des Dienstes auf. Dort sind die Klassen für den Dienst und die Methoden aufgeführt, die sie zurückgeben.

Schnittstellen

Einige Dienste enthalten Klassen, die in der Referenzdokumentation als „Schnittstellen“ bezeichnet werden. Dabei handelt es sich um generische Klassen, die als Rückgabetypen für Methoden verwendet werden, bei denen der genaue Typ nicht im Voraus bestimmt werden kann. Die Methode des Dokumentdienstes gibt beispielsweise ein generisches Element Objekt zurück.Body.getChild(childIndex) Die Element Schnittstelle stellt eine andere Klasse dar, möglicherweise ein Paragraph oder Table. Schnittstellenobjekte sind selten allein nützlich. Rufen Sie stattdessen eine Methode wie Element.asParagraph() auf, um das Objekt wieder in eine bestimmte Klasse umzuwandeln.

Enums

Die meisten Dienste enthalten Enums (aufgezählte Typen) mit benannten Werten. Der Google Drive-Dienst verwendet beispielsweise die Enums Access und Permission, um zu bestimmen, welche Nutzer Zugriff auf eine Datei oder einen Ordner haben. In den meisten Fällen greifen Sie über das globale Objekt auf diese Enums zu, wie im folgenden Beispiel gezeigt:

// Creates a folder that anyone on the Internet can read from and write to.
// (Domain administrators can prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);