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:
- Es enthält eine
doGet(e)
- oderdoPost(e)
-Funktion. - Die Funktion gibt ein HTML-Dienst-Objekt vom Typ
HtmlOutput
oder ein Inhaltsdienst-Objekt vom TypTextOutput
zurück.
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 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 {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Der URL-Pfad nach |
e.contextPath |
Wird nicht verwendet, immer der leere String. |
e.contentLength |
Die Länge des Anfragetexts für POST-Anfragen oder 332 |
e.postData.length |
Identisch mit 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:
- Klicken Sie rechts oben im Scriptprojekt 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 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:
- Klicken Sie rechts oben im Scriptprojekt auf Bereitstellen > Bereitstellungen testen.
- Klicken Sie neben „Typ auswählen“ auf „Deployment-Typen aktivieren“ > „Webanwendung“.
- Klicken Sie unter der URL der Webanwendung auf Kopieren.
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:
- Öffnen Sie die Seite „Websites“, auf der Sie die Webanwendung hinzufügen möchten.
- Wählen Sie Einfügen > URL einbetten aus.
- 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.