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 wie das JavaScript-Standardobjekt Math. So wie Math beispielsweise Methoden wie random() und Konstanten wie PI bietet, bietet der Tabellenkalkulationsdienst von Apps Script Methoden wie openById(id), Klassen (untergeordnete Objekte) wie Range und Enums wie DataValidationCriteria.

Die Referenzdokumentation für Dienste, die Produkte vonGoogle Workspace steuern, wird im Abschnitt „Google Workspace Dienste“ unter der Überschrift „Referenz“ in der Seitenleiste dieser Website erfasst. Dienstprogrammdienste (z. B. zum Erstellen von Benutzeroberflächen, zum Parsen von XML oder Schreiben von Protokolldaten) werden im Abschnitt „Script Services“ erfasst.

Moderne JavaScript-Funktionen

Apps Script unterstützt zwei JavaScript-Laufzeiten: die moderne V8-Laufzeit und eine ältere mit dem Rhino JavaScript Interpreter von Mozilla.

Die V8-Laufzeit unterstützt moderne ECMAScript-Syntax und -Funktionen. Die Rhino-Laufzeit basiert auf dem älteren Standard JavaScript 1.6 und einigen Features aus 1.7 und 1.8. Sie können frei auswählen, welche Laufzeit mit Ihrem Script verwendet werden soll, aber die V8-Laufzeit wird dringend empfohlen.

Jede Laufzeit unterstützt JavaScript-Klassen und -Objekte, die zusätzlich zu den integrierten und erweiterten Google-Diensten für Ihr Skript verfügbar sind. Ihre Skripts können gängige Objekte wie Array, Date, RegExp usw. sowie die globalen Objekte Math und Object verwenden.

Automatische Vervollständigung verwenden

Der Script-Editor bietet eine Funktion zur Unterstützung von Inhalten, auch als „automatische Vervollständigung“ bezeichnet. Sie zeigt die globalen Objekte sowie Methoden und Enums an, die im aktuellen Kontext des Skripts gültig sind. Die Funktion zur automatischen Vervollständigung wird automatisch angezeigt, wenn Sie nach einem globalen Objekt-, Enum- oder Methodenaufruf, der eine Apps Script-Klasse zurückgibt, automatisch einen Punkt eingeben. Beispiel:

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

Informationen zu globalen Objekten

Jeder Dienst stellt mindestens ein globales Objekt (oberste Ebene) zur Verfügung. Der Gmail-Dienst wird beispielsweise ausschließlich über das Objekt GmailApp aufgerufen. Einige Dienste stellen mehrere globale Objekte bereit. Der Basisdienst enthält beispielsweise vier globale Objekte: Browser, Logger, MimeType und Session.

Aufrufmethoden

Zu den globalen Objekten fast aller integrierten oder erweiterten Dienste gehören Methoden, die Daten oder eine Apps Script-Klasse zurückgeben. Skripts führen Methodenaufrufe in folgendem Format aus:

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

Ein Skript kann beispielsweise eine E-Mail senden, indem es die Methode sendEmail(recipient, subject, body) 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, können Sie Methodenaufrufe in einer Zeile verketten. Rückgabetypen werden sowohl in der automatischen Vervollständigung als auch in der Referenzdokumentation einer Methode angezeigt. Die Methode DocumentApp.create() gibt beispielsweise ein Document-Objekt zurück. Daher sind die folgenden beiden Codeabschnitte äquivalent:

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

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

Auf untergeordnete Klassen zugreifen

Jeder Dienst umfasst eine oder mehrere untergeordnete Klassen, auf die von der obersten Ebene aus nicht wie mit einem globalen Objekt zugegriffen werden kann. Sie können diese Klassen nicht mit dem Schlüsselwort new erstellen, wie dies bei standardmäßigen JavaScript-Klassen wie Date möglich ist. Sie können nur auf eine untergeordnete Klasse zugreifen, indem Sie eine Methode aufrufen, die sie zurückgibt. Wenn Sie nicht sicher sind, wie Sie auf eine bestimmte Klasse zugreifen können, rufen Sie die Stammseite der Referenzdokumentation des Dienstes auf und suchen Sie nach einer Methode, die die gewünschte Klasse zurückgibt.

Umgang mit Benutzeroberflächen

Zu einer Handvoll von Diensten gehören spezielle Klassen, die in der Referenzdokumentation als „Schnittstellen“ gekennzeichnet sind. Dies sind generische Klassen, die als Rückgabetypen für Methoden verwendet werden, die den genauen Typ nicht im Voraus bestimmen können. So gibt beispielsweise die Methode Body.getChild(childIndex) des Dokumentdienstes ein generisches Element-Objekt zurück. Element ist eine Schnittstelle, die eine andere Klasse darstellt, möglicherweise Paragraph oder Table. Schnittstellenobjekte sind selten alleine nützlich. Stattdessen sollten Sie in der Regel eine Methode wie Element.asParagraph() aufrufen, um das Objekt wieder in eine präzise Klasse umzuwandeln.

Mit Enums arbeiten

Die meisten Dienste enthalten einige Enums (Enumerationstypen) von benannten Werten. Der Drive-Dienst verwendet beispielsweise die Enums Access und Permission, um zu bestimmen, welche Nutzer Zugriff auf eine Datei oder einen Ordner haben. In fast allen Fällen greifen Sie über das globale Objekt auf diese Enums zu. Ein Aufruf der Methode Folder.setSharing(accessType, permissionType) sieht beispielsweise so aus:

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