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 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 so 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“  > Web-App.
  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 Script als Webanwendung:

  1. Klicken Sie rechts oben im Scriptprojekt auf Bereitstellen > Bereitstellungen testen.
  2. Klicken Sie neben „Typ auswählen“ auf „Bereitstellungstypen 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. In dieser Instanz der App wird immer der zuletzt gespeicherte Code ausgeführt. Sie ist nur für Tests während der Entwicklung vorgesehen.

Berechtigungen

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

  • App als mich ausführen: In diesem Fall wird das Script immer als Sie, der Eigentümer des Scripts, 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 Ihre Websitebesucher die Webanwendung möglicherweise autorisieren, damit sie normal ausgeführt wird. Von nicht autorisierten Web-Apps werden Autorisierungsaufforderungen an den Nutzer gesendet.

Web-Apps und Browserverlauf

Es kann wünschenswert sein, dass eine Apps Script-Web-App eine mehrseitige Anwendung oder eine Anwendung mit einer dynamischen Benutzeroberfläche simuliert, 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 auf Verlaufsereignisse achten, 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 beim Erstellen von Webanwendungen helfen, 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.