Aplikacje internetowe

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:

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 ereprezentuje 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 null, jeśli ciąg zapytania nie jest określony

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 e.parameter, ale z tablicą wartości dla każdego klucza

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

Ścieżka adresu URL po /exec lub /dev. Jeśli np. ścieżka URL kończy się na /exec/hello, informacja o ścieżce to hello.

e.contextPath Nieużywany, zawsze pusty ciąg.
e.contentLength

Długość treści żądania w przypadku żądań POST lub -1 w przypadku żądań GET

332
e.postData.length

Taka sama jak w hotelu e.contentLength

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 usernameage 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ą:

  1. W prawym górnym rogu projektu skryptu kliknij Wdróż > Nowe wdrożenie.
  2. Obok pozycji „Wybierz typ” kliknij Włącz typy wdrożenia  > Aplikacja internetowa.
  3. W polach w sekcji „Konfiguracja wdrożenia” podaj informacje o aplikacji internetowej.
  4. 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ą:

  1. W prawym górnym rogu projektu skryptu kliknij Wdróż > Testuj wdrożenia.
  2. Obok opcji „Wybierz typ” kliknij Włącz typy wdrożenia > Aplikacja internetowa.
  3. Pod adresem URL aplikacji internetowej kliknij Kopiuj.
  4. 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:

  1. Otwórz stronę Witryny, na której chcesz dodać aplikację internetową.
  2. Kliknij Wstaw > Umieść URL.
  3. 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.historyzawiera 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.