Jeśli tworzysz interfejs użytkownika dla skryptu, możesz go opublikować jako aplikację internetową. Na przykład skrypt, który pozwala użytkownikom planować spotkania z członkami zespołu pomocy, najlepiej prezentować jako aplikację internetową, aby użytkownicy mogli uzyskać do niej dostęp bezpośrednio z przeglądarki.
Zarówno samodzielne skrypty, jak i skrypty powiązane z aplikacją Google Workspace mogą zostać przekształcone w aplikacje internetowe, o ile spełniają poniższe wymagania.
Wymagania dotyczące aplikacji internetowych
Skrypt może zostać opublikowany jako aplikacja internetowa, jeśli spełnia te wymagania:
- Zawiera funkcję
doGet(e)
lubdoPost(e)
. - Funkcja zwraca obiekt usługi HTML
HtmlOutput
lub obiekt usługi dotyczącej treściTextOutput
.
Parametry żądania
Gdy użytkownik odwiedza aplikację lub program wysyła do niej żądanie HTTP GET
, skrypt Apps Script uruchamia funkcję doGet(e)
. Gdy program wysyła do aplikacji żądanie HTTPPOST
, skrypt Apps uruchamia się zamiast doPost(e)
. W obu przypadkach argument e
reprezentuje parametr zdarzenia, który może zawierać informacje o dowolnych parametrach żądania. Strukturę obiektu zdarzenia przedstawia tabela poniżej:
Pola | |
---|---|
e.queryString |
Wartość ciągu zapytania w adresie URL lub name=alice&n=1&n=2 |
e.parameter |
Obiekt z parami klucz-wartość odpowiadającymi parametrom żądania. W przypadku parametrów, które mają wiele wartości, zwracana jest tylko pierwsza wartość. {"name": "alice", "n": "1"} |
e.parameters |
Obiekt podobny do {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Ścieżka adresu URL po |
e.contextPath |
Nieużywany, zawsze pusty ciąg. |
e.contentLength |
Długość treści żądania w przypadku żądań POST lub 332 |
e.postData.length |
Taka sama jak w hotelu 332 |
e.postData.type |
Typ MIME treści żądania POST. text/csv |
e.postData.contents |
Treść treści żądania POST Alice,21 |
e.postData.name |
Zawsze wartość „postData” postData |
Możesz np. przekazywać parametry takie jak username
i age
do adresu URL w ten sposób:
https://script.google.com/.../exec?username=jsmith&age=21
Następnie możesz wyświetlić parametry w ten sposób:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
W przykładzie powyżej doGet(e)
zwraca te dane wyjściowe:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
Wdrażanie skryptu jako aplikacji internetowej
Aby wdrożyć skrypt jako aplikację internetową:
- W prawym górnym rogu projektu skryptu kliknij Wdróż > Nowe wdrożenie.
- Obok pozycji „Wybierz typ” kliknij Włącz typy wdrożenia > Aplikacja internetowa.
- W polach w sekcji „Konfiguracja wdrożenia” podaj informacje o aplikacji internetowej.
- Kliknij Wdróż.
Adres URL aplikacji internetowej możesz udostępnić osobom, które mają korzystać z Twojej aplikacji, pod warunkiem że przyznasz im dostęp.
Testowanie wdrożenia aplikacji internetowej
Aby przetestować skrypt jako aplikację internetową:
- W prawym górnym rogu projektu skryptu kliknij Wdróż > Testuj wdrożenia.
- Obok opcji „Wybierz typ” kliknij Włącz typy wdrożenia > Aplikacja internetowa.
- Pod adresem URL aplikacji internetowej kliknij Kopiuj.
Wklej adres URL w przeglądarce i przetestuj aplikację internetową.
Ten adres URL kończy się na
/dev
i mogą go otwierać tylko użytkownicy z uprawnieniami do edycji skryptu. Ta instancja aplikacji zawsze uruchamia ostatnio zapisany kod i służy tylko do testowania podczas tworzenia aplikacji.
Uprawnienia
Uprawnienia aplikacji internetowej różnią się w zależności od tego, jak chcesz ją uruchomić:
- Uruchom aplikację jako ja – w tym przypadku skrypt zawsze działa jako właściciel skryptu, niezależnie od tego, kto uzyskuje dostęp do aplikacji internetowej.
- Uruchomienie aplikacji jako użytkownik korzystający z aplikacji internetowej – w tym przypadku skrypt jest uruchamiany pod tożsamością aktywnego użytkownika korzystającego z aplikacji internetowej. Dzięki temu podejściu aplikacja internetowa wyświetla adres e-mail właściciela skryptu, gdy użytkownik autoryzuje dostęp.
Wstawianie aplikacji internetowej w Witrynach Google
Aby osadzić aplikację internetową w Witrynach Google, musisz ją najpierw wdrażać. Potrzebujesz też adresu URL wdrożonej aplikacji z okna Deploy
.
Aby osadzić aplikację internetową na stronie Witryny:
- Otwórz stronę Witryny, na której chcesz dodać aplikację internetową.
- Kliknij Wstaw > Umieść URL.
- Wklej adres URL aplikacji internetowej, a potem kliknij DODAJ.
Aplikacja internetowa pojawi się w ramce w podglądzie strony. Po opublikowaniu strony użytkownicy witryny mogą musieć autoryzować aplikację internetową, zanim będzie ona mogła normalnie działać. Nieautoryzowane aplikacje internetowe wyświetlają użytkownikowi prośby o autoryzację.
Aplikacje internetowe i historia przeglądarki
Aplikacja internetowa Apps Script może symulować aplikację wielostronicową lub aplikację z interfejsem dynamicznym sterowanym za pomocą parametrów URL. Aby to zrobić, możesz zdefiniować obiekt stanu, który będzie reprezentować interfejs użytkownika lub stronę aplikacji, i przesyłać stan do historii przeglądarki, gdy użytkownik będzie się przemieszczać po aplikacji. Możesz też nasłuchiwać zdarzeń historii, aby Twoja aplikacja internetowa wyświetlała prawidłowy interfejs, gdy użytkownik będzie się przemieszczać do tyłu i do przodu za pomocą przycisków przeglądarki. Wysyłając zapytanie o parametry adresu URL w momencie wczytywania, możesz umożliwić aplikacji dynamiczne tworzenie interfejsu użytkownika na podstawie tych parametrów, co pozwoli użytkownikowi uruchomić aplikację w określonym stanie.
Apps Script udostępnia 2 asynchroniczne interfejsy API JavaScript po stronie klienta, które ułatwiają tworzenie aplikacji internetowych powiązanych z historią przeglądania:
google.script.history
zawiera metody umożliwiające dynamiczną reakcję na zmiany w historii przeglądarki. Obejmuje to: przesyłanie stanów (prostych obiektów, które możesz zdefiniować) do historii przeglądarki, zastępowanie najwyższego stanu w steku historii i ustawianie funkcji wywołania zwrotnego listenera w odpowiedzi na zmiany historii.Parametr
google.script.url
umożliwia pobieranie parametrów adresu URL bieżącej strony i fragmentu adresu URL, jeśli są dostępne.
Te interfejsy API dotyczące historii są dostępne tylko dla aplikacji internetowych. Nie są one obsługiwane na pasku bocznym, w oknach dialogowych ani w dodatkach. Ta funkcja nie jest też zalecana do stosowania w aplikacjach internetowych umieszczonych w witrynie Google Sites.