Jeśli tworzysz interfejs użytkownika, opublikuj skrypt jako aplikację internetową. Na przykład skrypt, który umożliwia użytkownikom planowanie spotkań z członkami zespołu pomocy, najlepiej zaprezentować 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 aplikacjami Google Workspace można przekształcić w aplikacje internetowe, o ile spełniają one poniższe wymagania.
Wymagania dotyczące aplikacji internetowych
Skrypt można opublikować jako aplikację internetową, jeśli spełnia te wymagania:
- Zawiera funkcję
doGetlubdoPost. - Funkcja zwraca obiekt usługi HTML
HtmlOutputlub obiekt usługi treściTextOutput.
Parametry żądania
Gdy użytkownik odwiedza aplikację lub program wysyła do niej żądanie HTTP GET, Google Apps Script uruchamia funkcję doGet. Gdy program wyśle do aplikacji żądanie HTTP POST, Apps Script uruchomi doPost. W obu przypadkach argument e reprezentuje parametr zdarzenia, który może zawierać informacje o dowolnych parametrach żądania. Struktura obiektu zdarzenia jest pokazana w tej tabeli:
| Pola | |
|---|---|
e.queryString |
Wartość części adresu URL zawierającej ciąg zapytania lub name=alice&n=1&n=2 |
e.parameter |
Obiekt par klucz/wartość odpowiadających 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 |
Nie używane, zawsze pusty ciąg znaków. |
e.contentLength |
Długość treści żądania w przypadku żądań POST lub 332 |
e.postData.length |
Taka sama jak w przypadku 332 |
e.postData.type |
Typ MIME treści żądania POST text/csv |
e.postData.contents |
Tekst treści żądania POST Alice,21 |
e.postData.name |
Zawsze wartość „postData” postData |
Przekaż parametry, takie jak username i age, do adresu URL w ten sposób:
https://script.google.com/.../exec?username=jsmith&age=21
Wyświetl 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 funkcja doGet zwraca te dane wyjściowe:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
Te nazwy parametrów są zarezerwowane przez system i nie należy ich używać w parametrach URL ani w treściach żądań POST:
csid
Użycie tych parametrów może spowodować zwrócenie odpowiedzi HTTP 405 z komunikatem o błędzie „Sorry, the file you have requested does not exist.” (Przepraszamy, żądany plik nie istnieje). Jeśli to możliwe, zaktualizuj skrypt, aby używać innych nazw parametrów.
Wdrażanie skryptu jako aplikacji internetowej
Aby wdrożyć skrypt jako aplikację internetową, wykonaj te czynności:
- W prawym górnym rogu projektu skryptu kliknij Wdróż > Nowe wdrożenie.
- Obok pozycji „Wybierz typ” kliknij Włącz typy wdrożenia > Aplikacja internetowa.
- Wpisz informacje o aplikacji internetowej w polach w sekcji „Konfiguracja wdrożenia”.
- Kliknij Wdróż.
Udostępnij adres URL aplikacji internetowej osobom, które mają z niej korzystać, pod warunkiem że przyznasz im dostęp.
Aplikacje internetowe wdrożone w jednej domenie przestają działać, jeśli ich własność zostanie przeniesiona na dysk współdzielony lub konto w innej domenie. Można to naprawić, prosząc nowego właściciela lub współpracownika o ponowne wdrożenie aplikacji internetowej w nowej domenie. Jeśli aplikacja internetowa zostanie przeniesiona z powrotem do pierwotnej domeny, zacznie ponownie działać w tej domenie bez konieczności ponownego wdrażania.
Testowanie wdrożenia aplikacji internetowej
Aby przetestować skrypt jako aplikację internetową, wykonaj te czynności:
- 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
/devi jest dostępny tylko dla użytkowników, którzy mają uprawnienia do edycji skryptu. Ta instancja aplikacji zawsze uruchamia ostatnio zapisany kod i jest przeznaczona tylko do testowania podczas programowania.
Aby przetestować funkcję szczegółowego OAuth w aplikacji internetowej, upewnij się, że Twój projekt nie ma jeszcze żadnych autoryzacji.
Aby unieważnić istniejące autoryzacje, użyj funkcji ScriptApp.invalidateAuth.
W przypadku wszystkich aplikacji internetowych, które są już wdrożone i działają w ramach tożsamości aktywnego użytkownika, zmień pole JSON executeAs w manifeście na USER_DEPLOYING.
Podczas wdrażania aplikacji internetowych, które mają być uruchamiane jako deweloper, zachowaj szczególną ostrożność podczas obsługi tokenów OAuth uzyskanych za pomocą funkcji ScriptApp.getOAuthToken. Te tokeny mogą przyznawać innym aplikacjom dostęp do Twoich danych. Nigdy nie przesyłaj ich do klienta.
Uprawnienia
Uprawnienia aplikacji internetowej różnią się w zależności od sposobu jej uruchomienia:
- Uruchom aplikację jako ja – w tym przypadku skrypt jest zawsze wykonywany jako Ty, właściciel skryptu, niezależnie od tego, kto uzyskuje dostęp do aplikacji internetowej.
- Uruchom aplikację jako użytkownik otwierający aplikację internetową – w tym przypadku skrypt jest uruchamiany w imieniu aktywnego użytkownika korzystającego z aplikacji internetowej. To podejście do uprawnień powoduje, że gdy użytkownik autoryzuje dostęp, aplikacja internetowa wyświetla adres e-mail właściciela skryptu.
Aby zapobiec nadużyciom, Apps Script ogranicza szybkość, z jaką nowi użytkownicy mogą autoryzować aplikację internetową działającą jako użytkownik. Te limity zależą m.in. od tego, czy konto wydawcy jest częścią domeny Google Workspace.
Współpraca nad aplikacjami internetowymi przy użyciu dysku współdzielonego. Gdy aplikacja internetowa na dysku współdzielonym zostanie wdrożona, wybranie opcji „wykonaj jako Ty” spowoduje, że aplikacja internetowa będzie wykonywana w imieniu użytkownika, który ją wdrożył (ponieważ nie ma właściciela skryptu).
Umieszczanie aplikacji internetowej w Witrynach Google {:#embed-web-app}
Osadzone aplikacje internetowe nadal podlegają uprawnieniom dostępu, aby zapobiegać złośliwemu wykorzystaniu. Jeśli osadzona aplikacja internetowa nie działa, sprawdź, czy uprawnienia ustawione przez właściciela aplikacji internetowej i administratora domeny zezwalają na jej używanie.
Aby osadzić aplikację internetową w Witrynach, musisz najpierw ją wdrożyć. Potrzebujesz też URL-a wdrożonej aplikacji z okna Wdróż.
Aby osadzić aplikację internetową na stronie Witryn, wykonaj te czynności:
- Otwórz stronę Witryn, do której chcesz dodać aplikację internetową.
- Wybierz Wstaw > Umieść adres URL.
- Wklej adres URL aplikacji internetowej, a potem kliknij DODAJ.
Aplikacja internetowa pojawi się w ramce w podglądzie strony. Gdy opublikujesz stronę, użytkownicy Twojej witryny mogą musieć autoryzować aplikację internetową, zanim zacznie ona działać prawidłowo. Nieautoryzowane aplikacje internetowe wyświetlają użytkownikowi prośby o autoryzację.
Aplikacje internetowe i historia przeglądarki
Aby zasymulować aplikację wielostronicową lub aplikację z dynamicznym interfejsem użytkownika kontrolowanym za pomocą parametrów adresu URL, zdefiniuj obiekt stanu reprezentujący interfejs użytkownika lub stronę aplikacji i przesyłaj stan do historii przeglądarki, gdy użytkownik porusza się po aplikacji. Nasłuchuj zdarzeń historii, aby aplikacja internetowa wyświetlała prawidłowy interfejs użytkownika, gdy użytkownik cofa się i przechodzi do przodu za pomocą przycisków przeglądarki. W momencie wczytywania aplikacji wysyłaj zapytania o parametry adresu URL i na ich podstawie dynamicznie twórz interfejs użytkownika, aby umożliwić użytkownikowi uruchomienie aplikacji w określonym stanie.
Apps Script udostępnia 2 asynchroniczne interfejsy API JavaScript po stronie klienta, które pomagają tworzyć aplikacje internetowe połączone z historią przeglądarki:
google.script.historyudostępnia metody umożliwiające dynamiczne reagowanie na zmiany w historii przeglądarki. Obejmuje to: umieszczanie stanów (prostych obiektów zdefiniowanych przez Ciebie) w historii przeglądarki, zastępowanie stanu najwyższego w stosie historii i ustawianie wywołania zwrotnego detektora w celu reagowania na zmiany w historii.google.script.urlumożliwia pobieranie parametrów adresu URL bieżącej strony i fragmentu adresu URL, jeśli są one obecne.
Te interfejsy API historii są dostępne tylko dla aplikacji internetowych. Nie są one obsługiwane w przypadku pasków bocznych, okien dialogowych ani dodatków. Nie zalecamy też używania tej funkcji w aplikacjach internetowych umieszczonych w Witrynach.