Web-Apps

Wenn Sie eine Benutzeroberfläche für ein Skript erstellen, können Sie das Skript als Webanwendung veröffentlichen. Ein Skript, mit dem Nutzer beispielsweise Termine mit Mitgliedern eines Supportteams vereinbaren können, eignet sich am besten als Webanwendung, sodass die Nutzer direkt über ihren Browser darauf zugreifen können.

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

Anforderungen für Web-Apps

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

Anfrageparameter

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

Felder
e.queryString

Der Wert des Abfragestringteils 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 ähnlich wie e.parameter, aber mit einem Array von Werten für jeden Schlüssel

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

Der URL-Pfad nach /exec oder /dev. Endet der URL-Pfad beispielsweise mit /exec/hello, lautet die Pfadinformation hello.

e.contextPath Nicht verwendet, immer ein leerer String
e.contentLength

Die Länge des Anfragetexts bei 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-Hauptteils

text/csv
e.postData.contents

Der Inhaltstext des POST-Hauptteils

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 so anzeigen:

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

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

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

Skript als Webanwendung bereitstellen

So stellen Sie ein Skript als Webanwendung bereit:

  1. Klicken Sie rechts oben im Skriptprojekt 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 Web-App-URL mit Personen teilen, die Ihre App verwenden möchten, sofern Sie ihnen Zugriff gewährt haben.

Bereitstellung einer Webanwendung testen

So testen Sie Ihr Script als Web-App:

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

    Diese URL endet auf /dev und kann nur von Nutzern mit Bearbeitungszugriff auf das Skript aufgerufen werden. Diese Instanz der App führt immer den zuletzt gespeicherten Code aus und ist nur zum Testen während der Entwicklung vorgesehen.

Berechtigungen

Die Berechtigungen für eine Webanwendung unterscheiden sich je nachdem, wie Sie die Anwendung ausführen:

  • Anwendung in meinem Namen ausführen: In diesem Fall wird das Skript immer als Sie (Inhaber des Skripts) ausgeführt, unabhängig davon, wer auf die Web-App zugreift.
  • Anwendung als Nutzer mit Zugriff auf die Webanwendung ausführen: In diesem Fall wird das Skript unter der Identität des aktiven Nutzers ausgeführt, der die Webanwendung verwendet. Durch diesen Berechtigungsansatz zeigt die Webanwendung die E-Mail-Adresse des Skriptinhabers an, wenn der Nutzer den Zugriff autorisiert.

Web-App in Google Sites einbetten

Damit Sie eine Webanwendung in Google Sites einbetten können, muss sie zuerst bereitgestellt werden. Sie benötigen außerdem die Bereitgestellte URL aus dem Dialogfeld Deploy.

So betten Sie eine Webanwendung auf einer Websites-Seite ein:

  1. Öffnen Sie die Google Sites-Seite, auf der Sie die Web-App hinzufügen möchten.
  2. Wählen Sie Einfügen > URL einbetten aus.
  3. Fügen Sie die URL der Web-App ein und klicken Sie dann auf HINZUFÜGEN.

Die Web-App wird in einem Frame in der Vorschau der Seite angezeigt. Wenn Sie die Seite veröffentlichen, müssen die Betrachter der Website die Web-App möglicherweise autorisieren, bevor sie normal ausgeführt werden kann. Nicht autorisierte Webanwendungen sehen dem Nutzer Autorisierungsaufforderungen.

Web-Apps und Browserverlauf

Es kann wünschenswert sein, eine mehrseitige Anwendung mit einer Apps Script-Webanwendung oder mit einer dynamischen UI zu simulieren, die über URL-Parameter gesteuert wird. Dazu können Sie ein Statusobjekt definieren, das die Benutzeroberfläche oder Seite der Anwendung darstellt, und den Status in den Browserverlauf übertragen, während der Nutzer in Ihrer App navigiert. Sie können auch Verlaufsereignisse überwachen, damit Ihre Webanwendung die richtige UI anzeigt, wenn der Nutzer mit den Browserschaltflächen vor- und zurück navigiert. Wenn Sie die URL-Parameter beim Laden abfragen, kann die Benutzeroberfläche Ihrer Anwendung basierend auf diesen Parametern dynamisch erstellt werden, sodass der Nutzer die Anwendung in einem bestimmten Zustand starten kann.

Apps Script bietet zwei asynchrone clientseitige JavaScript APIs für die Erstellung von Webanwendungen, die mit dem Browserverlauf verknüpft sind:

  • google.script.history bietet Methoden, mit denen Sie dynamische Antworten auf Änderungen des Browserverlaufs zulassen können. Dazu gehören das Übertragen von Status (einfache Objekte, die definiert werden können) in den Browserverlauf, das Ersetzen des obersten Status im Verlaufspaket und das Festlegen einer Listener-Callback-Funktion, die auf Verlaufsänderungen reagiert.

  • google.script.url bietet die Möglichkeit, die URL-Parameter und das URL-Fragment der aktuellen Seite abzurufen, falls vorhanden.

Diese Verlaufs-APIs sind nur für Web-Apps verfügbar. Bei Seitenleisten, Dialogfeldern oder Add-ons werden sie nicht unterstützt. Diese Funktion wird auch nicht für die Verwendung in Webanwendungen empfohlen, die in eine Google Sites-Website eingebettet sind.