Wenn Sie eine Benutzeroberfläche für ein Skript erstellen, können Sie es als Web-App veröffentlichen. Ein Skript, mit dem Nutzer Termine mit Mitgliedern eines Supportteams vereinbaren können, wird beispielsweise am besten als Web-App dargestellt. So können Nutzer direkt über ihren Browser darauf zugreifen.
Sowohl eigenständige Skripts als auch an Google Workspace Anwendungen gebundene Skripts können in Webanwendungen umgewandelt werden, solange sie die unten aufgeführten Anforderungen erfüllen.
Anforderungen für Web-Apps
Ein Skript 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-Dienst-
HtmlOutput
-Objekt oder ein Content-Dienst-TextOutput
-Objekt 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 Anwendung eine HTTP-POST
-Anfrage 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 wird 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, das den Anfrageparametern entspricht. 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 |
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-Hauptteils Alice,21 |
e.postData.name |
Immer der Wert "postData" postData |
Parameter wie username
und age
können Sie beispielsweise an eine URL übergeben:
https://script.google.com/.../exec?username=jsmith&age=21
Anschließend können Sie die Parameter so anzeigen lassen:
function doGet(e) {
var params = JSON.stringify(e);
return HtmlService.createHtmlOutput(params);
}
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“ > Web-App.
- 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 Nutzern teilen, die Ihre App verwenden sollen, vorausgesetzt, Sie haben ihnen Zugriff gewährt.
Bereitstellung einer Web-App testen
So testen Sie Ihr Skript als Webanwendung:
- Klicken Sie rechts oben im Skriptprojekt auf > Testbereitstellungen bereitstellen.
- 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 Ihre Web-App.
Diese URL endet auf
/dev
und kann nur von Nutzern aufgerufen werden, die Bearbeitungszugriff auf das Skript haben. Diese Instanz der Anwendung 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 als mich ausführen: In diesem Fall wird das Skript immer als Sie ausgeführt, der Inhaber des Skripts, 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. Bei dieser Berechtigung wird in der Web-App die E-Mail-Adresse des Skriptinhabers angezeigt, wenn der Nutzer den Zugriff autorisiert.
Webanwendung in Google Sites einbetten
Du kannst Webanwendungen sowohl in der klassischen als auch in der neuen Version von Google Sites einbetten.
Web-Apps im neuen Google Sites einbetten
Zum Einbetten einer Webanwendung muss sie zuerst bereitgestellt werden. Außerdem benötigen Sie die Bereitgestellte URL aus dem Dialogfeld Deploy
.
So betten Sie eine Webanwendung in eine Seite im neuen Google Sites ein:
- Öffnen Sie die Google Sites-Seite, der Sie die Web-App hinzufügen möchten.
- Wählen Sie URL einbetten aus.
- Fügen Sie die Web-App-URL 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 Besucher Ihrer Website möglicherweise die Webanwendung autorisieren, bevor sie normal ausgeführt wird. Bei nicht autorisierten Webanwendungen werden dem Nutzer Autorisierungsaufforderung angezeigt.
Web-App im klassischen Google Sites einbetten
Du kannst ein Skript auf fast dieselbe Weise an eine klassische Google Sites-Website binden wie ein Skript an ein Google-Dokument oder eine Google-Tabelle binden. Rufen Sie zum Erstellen eines gebundenen Skripts Ihre Website auf, klicken Sie auf das Zahnradsymbol und wählen Sie Website verwalten aus. Klicken Sie auf der Seite „Website verwalten“ im linken Navigationsbereich auf Apps-Skripts und dann auf die Schaltfläche Neues Skript hinzufügen. Dadurch wird im Apps Script-Editor ein neues Skript geöffnet, in dem Sie Ihre Webanwendung programmieren und bereitstellen können.
Sie können Ihre Web-App auch auf einer Seite einbetten. Sie können die Webanwendung an die Website binden oder eine beliebige Webanwendung verwenden, für die Sie die URL haben. So betten Sie eine Web-App auf einer Google Sites-Seite ein:
- Öffnen Sie eine vorhandene Website, für die Sie Bearbeitungszugriff haben, oder erstellen Sie eine neue Website.
- Rufen Sie die Seite Ihrer Website auf, auf der Sie die Web-App einbetten möchten.
- Klicken Sie auf das Bearbeitungssymbol und dann auf Google Apps Script einfügen.
- Wählen Sie das Skript aus der Liste aus, das Ihre Webanwendung darstellt. Wenn Ihre Webanwendung nicht an diese Website gebunden ist, können Sie stattdessen die URL der Webanwendung einfügen.
- Klicken Sie auf die Schaltfläche Auswählen, wählen Sie im nächsten Dialogfeld die gewünschten Optionen aus und klicken Sie auf Speichern.
- Speichern Sie die Änderungen auf der Seite. Ihre Web-App sollte dann in Ihre Google Sites-Seite eingebettet sein.
Web-Apps und Browserverlauf
Es kann wünschenswert sein, dass eine Apps Script-Webanwendung eine mehrseitige Anwendung simuliert, oder eine mit einer dynamischen UI, die über URL-Parameter gesteuert wird. Dazu können Sie ein Zustandsobjekt definieren, um die UI oder Seite der App darzustellen und den Status in den Browserverlauf zu ü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 über die Browserschaltflächen vor- und zurückgeht. Wenn Sie die URL-Parameter beim Laden abfragen, können Sie dafür sorgen, dass die UI der App dynamisch anhand dieser Parameter erstellt wird und der Nutzer die App in einem bestimmten Zustand starten kann.
Apps Script bietet zwei asynchrone clientseitige JavaScript-APIs für das Erstellen von Webanwendungen, die mit dem Browserverlauf verknüpft sind:
google.script.history
bietet Methoden, die eine dynamische Antwort auf Änderungen des Browserverlaufs ermöglichen. Dazu gehören das Übertragen von Zuständen (einfache, von Ihnen definierte Objekte) in den Browserverlauf, das Ersetzen des obersten Zustands im Verlaufsstapel und das Festlegen einer Listener-Callback-Funktion, um auf Verlaufsänderungen zu reagieren.google.script.url
bietet die Möglichkeit, die URL-Parameter und das URL-Fragment der aktuellen Seite abzurufen, sofern sie vorhanden sind.
Diese Verlaufs-APIs sind nur für Webanwendungen verfügbar. Sie werden für Seitenleisten, Dialogfelder und Add-ons nicht unterstützt. Diese Funktion wird auch nicht für in Google Sites eingebettete Web-Apps empfohlen.