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 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:
- Klicken Sie rechts oben im Scriptprojekt auf Bereitstellen > Neue Bereitstellung.
- Klicken Sie neben „Typ auswählen“ auf „Bereitstellungstypen aktivieren“ > Web-App.
- 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 Script als Webanwendung:
- 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. 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:
- Ö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 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.