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:
- Sie enthält eine
doGet(e)
- oderdoPost(e)
-Funktion. - Die Funktion gibt ein HTML-Dienstobjekt
HtmlOutput
oder ein Inhaltsdienst-TextOutput
-Objekt zurück.
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 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 {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Der URL-Pfad nach |
e.contextPath |
Nicht verwendet, immer ein leerer String |
e.contentLength |
Die Länge des Anfragetexts bei POST-Anfragen oder 332 |
e.postData.length |
Identisch mit 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:
- Klicken Sie rechts oben im Skriptprojekt auf Bereitstellen > Neue Bereitstellung.
- Klicken Sie neben „Typ auswählen“ auf „Bereitstellungstypen aktivieren“ > Webanwendung.
- Geben Sie die Informationen zu Ihrer Webanwendung in die Felder unter „Bereitstellungskonfiguration“ ein.
- 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:
- Klicken Sie rechts oben im Skriptprojekt auf Bereitstellen > Bereitstellungen testen.
- Klicken Sie neben „Typ auswählen“ auf „Bereitstellungstypen aktivieren“ > Web-App.
- Klicken Sie unter der URL der Web-App auf Kopieren.
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:
- Öffnen Sie die Google Sites-Seite, auf der Sie die Web-App hinzufügen möchten.
- Wählen Sie Einfügen > URL einbetten aus.
- 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.