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);