Web-Apps

Wenn Sie eine Benutzeroberfläche für ein Script erstellen, können Sie es als Webanwendung veröffentlichen. Ein Script, mit dem Nutzer beispielsweise Termine mit Mitgliedern eines Supportteams vereinbaren können, sollte am besten als Webanwendung präsentiert werden, damit Nutzer direkt über ihren Browser darauf zugreifen können.

Sowohl eigenständige Scripts als auch Scripts, die an Google Workspace Anwendungen gebunden sind, können in Webanwendungen umgewandelt werden, sofern sie die folgenden Anforderungen erfüllen.

Anforderungen an Webanwendungen

Ein Script kann als Webanwendung veröffentlicht werden, wenn es die folgenden Anforderungen erfüllt:

Anfrageparameter

Wenn ein Nutzer eine App aufruft oder ein Programm eine HTTP-GET-Anfrage an die App sendet, führt Apps Script die Funktion doGet(e) aus. Wenn ein Programm der App eine HTTP-POST-Anfrage sendet, wird stattdessen doPost(e) in Apps Script ausgeführt. In beiden Fällen stellt das Argument e einen Ereignisparameter dar, der Informationen zu beliebigen Anfrageparametern enthalten kann. Die Struktur des Ereignisobjekts ist in der folgenden Tabelle dargestellt:

Felder
e.queryString

Der Wert des Abfragestring-Teils der URL oder null, wenn kein Abfragestring angegeben ist

name=alice&n=1&n=2
e.parameter

Ein Objekt mit Schlüssel/Wert-Paaren, die den Anfrageparametern entsprechen. Bei Parametern mit mehreren Werten wird nur der erste Wert zurückgegeben.

{"name": "alice", "n": "1"}
e.parameters

Ein Objekt, das e.parameter ähnelt, aber für jeden Schlüssel ein Array von Werten enthält

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

Der URL-Pfad nach /exec oder /dev. Wenn der URL-Pfad beispielsweise auf /exec/hello endet, lautet die Pfadinformation hello.

e.contextPath Wird nicht verwendet, immer der leere String.
e.contentLength

Die Länge des Anfragetexts für POST-Anfragen oder -1 für GET-Anfragen

332
e.postData.length

Identisch mit e.contentLength

332
e.postData.type

Der MIME-Typ des POST-Texts

text/csv
e.postData.contents

Der Inhalt des POST-Textkörpers

Alice,21
e.postData.name

Immer der Wert „postData“

postData

Sie können beispielsweise Parameter wie username und age an eine URL übergeben, wie unten gezeigt:

https://script.google.com/.../exec?username=jsmith&age=21

Anschließend können Sie die Parameter wie folgt anzeigen:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

Im obigen Beispiel gibt doGet(e) folgende Ausgabe zurück:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

Script als Webanwendung bereitstellen

So stellen Sie ein Script als Webanwendung bereit:

  1. Klicken Sie rechts oben im Scriptprojekt auf Bereitstellen > Neue Bereitstellung.
  2. Klicken Sie neben „Typ auswählen“ auf „Bereitstellungstypen aktivieren“ > Webanwendung.
  3. Geben Sie die Informationen zu Ihrer Webanwendung in die Felder unter „Bereitstellungskonfiguration“ ein.
  4. Klicken Sie auf Bereitstellen.

Sie können die URL der Webanwendung mit den Personen teilen, die Ihre App verwenden sollen, sofern Sie ihnen Zugriff gewährt haben.

Webanwendungsbereitstellung testen

So testen Sie Ihr Skript als Web-App:

  1. Klicken Sie rechts oben im Scriptprojekt auf Bereitstellen > Bereitstellungen testen.
  2. Klicken Sie neben „Typ auswählen“ auf „Deployment-Typen aktivieren“  > „Webanwendung“.
  3. Klicken Sie unter der URL der Webanwendung auf Kopieren.
  4. Fügen Sie die URL in Ihren Browser ein und testen Sie Ihre Webanwendung.

    Diese URL endet auf /dev und kann nur von Nutzern aufgerufen werden, die Bearbeitungszugriff auf das Script haben. Diese Instanz der Anwendung führt immer den zuletzt gespeicherten Code aus und ist nur für Tests während der Entwicklung vorgesehen.

Berechtigungen

Die Berechtigungen für eine Webanwendung variieren je nach Ausführungsart der Anwendung:

  • Anwendung als ich ausführen: In diesem Fall wird das Skript immer als Sie als Inhaber des Skripts ausgeführt, unabhängig davon, wer auf die Webanwendung zugreift.
  • Anwendung als Nutzer ausführen, der auf die Webanwendung zugreift: In diesem Fall wird das Script unter der Identität des aktiven Nutzers ausgeführt, der die Webanwendung verwendet. Bei diesem Berechtigungsansatz wird in der Webanwendung die E-Mail-Adresse des Scripteigentümers angezeigt, wenn der Nutzer den Zugriff autorisiert.

Web-App in Google Sites einbetten

Damit eine Webanwendung in Google Sites eingebettet werden kann, muss sie zuerst bereitgestellt werden. Außerdem benötigen Sie die Bereitgestellte URL aus dem Dialogfeld Deploy.

So betten Sie eine Webanwendung in eine Website ein:

  1. Öffnen Sie die Seite „Websites“, auf der Sie die Webanwendung hinzufügen möchten.
  2. Wählen Sie Einfügen > URL einbetten aus.
  3. Fügen Sie die URL der Webanwendung ein und klicken Sie auf HINZUFÜGEN.

Die Webanwendung wird in der Vorschau der Seite in einem Frame angezeigt. Wenn Sie die Seite veröffentlichen, müssen die Betrachter Ihrer Website die Webanwendung möglicherweise erst autorisieren, bevor sie normal ausgeführt werden kann. Nicht autorisierte Web-Apps präsentieren dem Nutzer Autorisierungsaufforderungen.

Web-Apps und Browserverlauf

Es kann wünschenswert sein, eine Apps Script-Webanwendung eine mehrseitige Anwendung zu simulieren oder eine Anwendung mit einer dynamischen UI, die über URL-Parameter gesteuert wird. Dazu können Sie ein Statusobjekt definieren, das die Benutzeroberfläche oder Seite der App darstellt, und den Status in den Browserverlauf aufnehmen, während sich der Nutzer in Ihrer App bewegt. Sie können auch Verlaufsereignisse überwachen, damit Ihre Webanwendung die richtige Benutzeroberfläche anzeigt, wenn sich der Nutzer mit den Browserschaltflächen vor- und zurückbewegt. Wenn Sie die URL-Parameter zum Zeitpunkt des Ladens abfragen, kann die Benutzeroberfläche Ihrer App dynamisch auf Grundlage dieser Parameter erstellt werden. So kann der Nutzer die App in einem bestimmten Zustand starten.

Apps Script bietet zwei asynchrone clientseitige JavaScript APIs, die Sie beim Erstellen von Web-Apps unterstützen, die mit dem Browserverlauf verknüpft sind:

  • google.script.history bietet Methoden, mit denen Sie auf Änderungen am Browserverlauf dynamisch reagieren können. Dazu gehören: das Einfügen von Status (einfache Objekte, die Sie definieren können) in den Browserverlauf, das Ersetzen des obersten Status im Verlaufsstapel und das Festlegen einer Listener-Callback-Funktion, um auf Verlaufsänderungen zu reagieren.

  • Mit google.script.url können die URL-Parameter und das URL-Fragment der aktuellen Seite abgerufen werden, sofern vorhanden.

Diese Verlaufs-APIs sind nur für Webanwendungen verfügbar. Sie werden nicht für Seitenleisten, Dialogfelder oder Add-ons unterstützt. Diese Funktion wird auch nicht für die Verwendung in in Google Sites eingebetteten Webanwendungen empfohlen.