Web-Apps

Wenn Sie eine Benutzeroberfläche für ein Skript erstellen, können Sie das Skript als Web-App veröffentlichen. Ein Skript, mit dem Nutzer Termine mit Mitgliedern eines Supportteams vereinbaren können, wird am besten als Web-App dargestellt, sodass 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 Skript kann als Web-App veröffentlicht werden, wenn es die folgenden Anforderungen erfüllt:

Anfrageparameter

Wenn ein Nutzer eine App besucht oder ein Programm eine HTTP-GET-Anfrage an die App 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 beliebigen 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, das e.parameter ähnelt, aber ein Array von Werten für jeden Schlüssel enthält

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

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

e.contextPath Wird nicht verwendet, immer ein leerer 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-Hauptteils

text/csv
e.postData.contents

Der Inhaltstext des POST-Hauptteils

Alice,21
e.postData.name

Immer der Wert „postData“

postData

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

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) 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 URL der Web-App an Nutzer weitergeben, die Ihre App verwenden möchten, sofern Sie ihnen Zugriff gewährt haben.

Bereitstellung von Webanwendungen testen

So testen Sie Ihr Skript 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 Web-App-URL auf Kopieren.
  4. Fügen Sie die URL in Ihren Browser ein und testen Sie Ihre Webanwendung.

    Diese URL endet auf /dev und ist nur für Nutzer zugänglich, die Bearbeitungszugriff auf das Skript 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 hängen davon ab, wie Sie die Anwendung ausführen:

  • 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.
  • App als Nutzer ausführen, der auf die Web-App zugreift: In diesem Fall wird das Skript unter der Identität des aktiven Nutzers ausgeführt, der die Web-App verwendet. Durch diesen Berechtigungsansatz wird in der Webanwendung die E-Mail-Adresse des Skriptinhabers angezeigt, wenn der Nutzer den Zugriff autorisiert.

Webanwendung in Google Sites einbetten

Wenn Sie eine Webanwendung in Google Sites einbetten möchten, muss sie zuerst bereitgestellt werden. Außerdem benötigen Sie die Bereitgestellte URL aus dem Dialogfeld Deploy.

So betten Sie eine Webanwendung in eine Google Sites-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 Webanwendung ein und klicken Sie dann auf HINZUFÜGEN.

Die Web-App 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 Anwendung darstellt, und den Status in den Browserverlauf übertragen, während der Nutzer durch Ihre 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ücknavigiert. Wenn Sie die URL-Parameter bei der Ladezeit abfragen, können Sie die Benutzeroberfläche Ihrer Anwendung basierend auf diesen Parametern dynamisch erstellen und dem Nutzer ermöglichen, die Anwendung in einem bestimmten Zustand zu 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 für eine dynamische Reaktion auf Änderungen am Browserverlauf. Dazu gehört das Übertragen von Status (einfache Objekte, die Sie definieren können) in den Browserverlauf, das Ersetzen des obersten Status im Verlaufsstack und das Festlegen einer Listener-Callback-Funktion, die auf Verlaufsänderungen reagiert.

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

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