Erweiterte Google-Dienste

Mit den erweiterten Diensten in Apps Script können erfahrene Entwickler mit weniger Aufwand eine Verbindung zu bestimmten öffentlichen Google APIs herstellen als mit ihren HTTP-Schnittstellen. Erweiterte Dienste sind im Grunde Thin Wrapper um diese Google APIs. Sie funktionieren ähnlich wie die integrierten Dienste von Apps Script. So bieten sie beispielsweise die automatische Vervollständigung und Apps Script übernimmt den Autorisierungsablauf automatisch. Sie müssen jedoch einen erweiterten Dienst aktivieren, bevor Sie ihn in einem Script verwenden können.

Welche Google APIs als erweiterte Dienste verfügbar sind, erfahren Sie in der Referenz im Abschnitt Erweiterte Google-Dienste. Wenn Sie eine Google API verwenden möchten, die nicht als erweiterter Dienst verfügbar ist, stellen Sie einfach eine Verbindung zu ihr her wie zu jeder anderen externen API.

Erweiterte Dienste oder HTTP?

Jeder der erweiterten Google-Dienste ist einer öffentlichen Google API zugeordnet. In Apps Script können Sie über erweiterte Dienste oder einfach direkt über UrlFetch auf diese APIs zugreifen.

Wenn Sie die Methode für erweiterte Dienste verwenden, übernimmt Apps Script den Autorisierungsablauf und bietet Unterstützung für die automatische Vervollständigung. Sie müssen den erweiterten Dienst aktivieren, bevor Sie ihn verwenden können. Außerdem bieten einige erweiterte Dienste nur einen Teil der in der API verfügbaren Funktionen.

Wenn Sie die UrlFetch-Methode verwenden, um direkt auf die API zuzugreifen, behandeln Sie die Google API im Grunde als externe API. Mit dieser Methode können alle Aspekte der API verwendet werden. Sie müssen jedoch die API-Autorisierung selbst vornehmen. Außerdem müssen Sie alle erforderlichen Header erstellen und die API-Antworten parsen.

Im Allgemeinen ist es am einfachsten, nach Möglichkeit einen erweiterten Dienst zu verwenden und die UrlFetch-Methode nur dann anzuwenden, wenn der erweiterte Dienst nicht die gewünschte Funktionalität bietet.

Voraussetzungen

Bevor Sie einen erweiterten Dienst verwenden können, müssen Sie die folgenden Anforderungen erfüllen:

  1. Sie müssen den erweiterten Dienst in Ihrem Scriptprojekt aktivieren.
  2. Die API, die dem erweiterten Dienst entspricht, muss im GCP-Projekt (Google Cloud Platform) aktiviert sein, das für Ihr Script verwendet wird.

    Wenn für Ihr Scriptprojekt ein Standard-GCP-Projekt verwendet wird, das am oder nach dem 8. April 2019 erstellt wurde, wird die API automatisch aktiviert, nachdem Sie den erweiterten Dienst aktiviert und das Scriptprojekt gespeichert haben. Falls Sie dies noch nicht getan haben, werden Sie möglicherweise auch aufgefordert, den Nutzungsbedingungen für Google Cloud und Google APIs zuzustimmen.

    Wenn für Ihr Scriptprojekt ein Standard-GCP-Projekt oder ein älteres Standard-GCP-Projekt verwendet wird, müssen Sie die entsprechende API des erweiterten Dienstes im GCP-Projekt manuell aktivieren. Sie benötigen Bearbeitungszugriff auf das GCP-Projekt, um diese Änderung vorzunehmen.

Weitere Informationen finden Sie unter Cloud Platform-Projekte.

Erweiterte Dienste aktivieren

So verwenden Sie einen erweiterten Google-Dienst:

  1. Öffnen Sie das Apps Script-Projekt.
  2. Klicken Sie links auf Editor .
  3. Klicken Sie links neben Dienste auf Dienst hinzufügen .
  4. Wählen Sie einen erweiterten Google-Dienst aus und klicken Sie auf Hinzufügen.

Nachdem Sie einen erweiterten Dienst aktiviert haben, ist er in der automatischen Vervollständigung verfügbar.

So werden Methodensignaturen ermittelt

Für erweiterte Dienste werden in der Regel dieselben Objekte, Methodennamen und Parameter wie für die entsprechenden öffentlichen APIs verwendet. Methodensignaturen werden jedoch für die Verwendung in Apps Script übersetzt. Die Autocomplete-Funktion des Script-Editors bietet in der Regel ausreichend Informationen für den Einstieg. In den folgenden Regeln wird jedoch erläutert, wie Apps Script eine Methodensignatur aus einer öffentlichen Google API generiert.

Anfragen an Google APIs können eine Vielzahl verschiedener Datentypen enthalten, darunter Pfadparameter, Abfrageparameter, einen Anfragetext und/oder einen Anhang für den Medienupload. Einige erweiterte Dienste können auch bestimmte HTTP-Anfrageheader akzeptieren, z. B. der erweiterte Kalenderdienst.

Die entsprechende Methodensignatur in Google Apps Script hat die folgenden Argumente:

  1. Der Anfragetext (in der Regel eine Ressource) als JavaScript-Objekt.
  2. Pfad oder erforderliche Parameter als einzelne Argumente.
  3. Der Anhang für den Medienupload als Blob-Argument.
  4. Optionale Parameter als JavaScript-Objekt, das Parameternamen zu Werten zuordnet.
  5. HTTP-Anfrageheader als JavaScript-Objekt, das Headernamen Headerwerten zuordnet.

Wenn die Methode keine Elemente in einer bestimmten Kategorie enthält, wird dieser Teil der Signatur weggelassen.

Es gibt einige Ausnahmen:

  • Bei Methoden, die einen Medienupload zulassen, wird der Parameter uploadType automatisch festgelegt.
  • Methoden mit dem Namen delete in der Google API heißen in Apps Script remove, da delete in JavaScript ein reserviertes Wort ist.
  • Wenn ein erweiterter Dienst so konfiguriert ist, dass er HTTP-Anfrageheader akzeptiert, und Sie ein JavaScript-Objekt für Anfrageheader festlegen, müssen Sie auch das JavaScript-Objekt für optionale Parameter festlegen (auf ein leeres Objekt, wenn Sie keine optionalen Parameter verwenden).

Unterstützung für erweiterte Dienste

Erweiterte Dienste sind lediglich Thin Wrapper, die die Verwendung einer Google API in Apps Script ermöglichen. Daher sind Probleme bei der Verwendung in der Regel auf die zugrunde liegende API zurückzuführen, nicht auf Apps Script selbst.

Wenn bei der Verwendung eines erweiterten Dienstes ein Problem auftritt, sollten Sie es gemäß der Supportanleitung für die zugrunde liegende API melden. Links zu diesen Supportanleitungen finden Sie in jedem Leitfaden für erweiterte Dienste im Abschnitt Referenz für Apps Script.