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 Methoden wie random() und Konstanten wie PI bietet, bietet der Tabellendienst von Apps Script Methoden wie openById(id), Klassen (untergeordnete Objekte) wie Range und Enums wie DataValidationCriteria.

Die Referenzdokumentation für Dienste, mit denenGoogle Workspace -Produkte gesteuert werden, finden Sie im AbschnittGoogle Workspace Dienste unter der Überschrift „Referenz“ in der Seitenleiste dieser Website. Dienstprogrammdienste wie das Erstellen von Benutzeroberflächen, das Parsen von XML oder das Schreiben von Protokolldaten werden im Abschnitt "Skriptdienste" 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 die moderne ECMAScript-Syntax und -Funktionen. Die Rhino-Laufzeit basiert auf dem älteren JavaScript 1.6-Standard und einigen Funktionen aus 1.7 und 1.8. Sie können frei auswählen, welche Laufzeit mit Ihrem Skript verwendet werden soll, aber die V8-Laufzeit wird dringend empfohlen.

Jede Laufzeit 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 gängige Objekte wie Array, Date, RegExp usw. sowie die globalen Objekte Math und Object verwenden.

Automatische Vervollständigung verwenden

Der Script-Editor bietet die Funktion „Inhaltsassistent“, die auch als „Vervollständigung“ bezeichnet wird. Damit werden die globalen Objekte sowie die Methoden und Enums angezeigt, die im aktuellen Kontext des Skripts gültig sind. Vorschläge für die automatische Vervollständigung werden automatisch angezeigt, wenn Sie nach einem globalen Objekt-, Enum- oder Methodenaufruf, der eine Apps Script-Klasse zurückgibt, einen Punkt eingeben. Beispiel:

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

Globale Objekte

Jeder Dienst stellt mindestens ein globales Objekt (oberste Ebene) bereit. Auf den Gmail-Dienst kann beispielsweise ausschließlich über das Objekt GmailApp zugegriffen werden. Einige Dienste stellen mehrere globale Objekte bereit. Beispielsweise umfasst der Basisdienst 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 diesem Format aus:

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

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

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 Kurse zugreifen

Jeder Dienst enthält eine oder mehrere untergeordnete Klassen, auf die von der obersten Ebene aus nicht wie ein globales Objekt zugegriffen werden kann. Sie können diese Klassen nicht mit dem Schlüsselwort new erstellen, wie dies bei Standard-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 für die Referenzdokumentation des Dienstes auf und suchen Sie nach einer Methode, die die gewünschte Klasse zurückgibt.

Umgang mit Schnittstellen

Einige Dienste enthalten spezielle Klassen, die in der Referenzdokumentation als "Schnittstellen" bezeichnet sind. Dies sind generische Klassen, die als Rückgabetypen für Methoden verwendet werden, die den genauen Typ nicht im Voraus bestimmen können. Die Methode Body.getChild(childIndex) des Document Service gibt beispielsweise ein generisches Element-Objekt zurück. Element ist eine Schnittstelle, die eine andere Klasse darstellt, möglicherweise ein Paragraph oder Table. Schnittstellenobjekte sind selten nützlich. Stattdessen möchten Sie in der Regel eine Methode wie Element.asParagraph() aufrufen, um das Objekt wieder in eine exakte Klasse umzuwandeln.

Mit Enums arbeiten

Die meisten Dienste enthalten einige Enums (Enum-Typen) mit benannten Werten. Der Drive-Dienst ermittelt beispielsweise anhand der Enums Access und Permission, 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);