App web

Se crei un'interfaccia utente per uno script, puoi pubblicare lo script come app web. Ad esempio, uno script che consente agli utenti di pianificare appuntamenti con i membri di un team di assistenza viene presentato al meglio come app web, in modo che gli utenti possano accedervi direttamente dai loro browser.

Sia gli script autonomi sia gli script associati alle Google Workspace applicazioni possono essere trasformati in app web, purché soddisfino i requisiti riportati di seguito.

Requisiti per le app web

Uno script può essere pubblicato come app web se soddisfa i seguenti requisiti:

Parametri richiesta

Quando un utente visita un'app o un programma invia all'app una richiesta GET HTTP, Apps Script esegue la funzione doGet(e). Quando un programma invia all'app una richiesta HTTP POST, Apps Script esegue invece doPost(e). In entrambi i casi, l'argomento e rappresenta un parametro evento che può contenere informazioni su qualsiasi parametro di richiesta. La struttura dell'oggetto evento è mostrata nella tabella seguente:

Campi
e.queryString

Il valore della parte della stringa di query dell'URL oppure null se non viene specificata alcuna stringa di query.

name=alice&n=1&n=2
e.parameter

Un oggetto di coppie chiave/valore che corrispondono ai parametri della richiesta. Per i parametri che hanno più valori, viene restituito solo il primo valore.

{"name": "alice", "n": "1"}
e.parameters

Un oggetto simile a e.parameter, ma con un array di valori per ogni chiave

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

Il percorso dell'URL dopo /exec o /dev. Ad esempio, se il percorso dell'URL termina con /exec/hello, le informazioni sul percorso sono hello.

e.contextPath Non utilizzato, viene sempre la stringa vuota.
e.contentLength

La lunghezza del corpo della richiesta per le richieste POST o -1 per le richieste GET

332
e.postData.length

Uguale a e.contentLength

332
e.postData.type

Il tipo MIME del corpo del POST

text/csv
e.postData.contents

Il testo dei contenuti del corpo del POST

Alice,21
e.postData.name

Sempre il valore "postData"

postData

Ad esempio, potresti passare parametri come username e age a un URL come mostrato di seguito:

https://script.google.com/.../exec?username=jsmith&age=21

Poi potrai visualizzare i parametri nel seguente modo:

function doGet(e) {
  var params = JSON.stringify(e);
  return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}

Nell'esempio precedente, doGet(e) restituisce il seguente output:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

Eseguire il deployment di uno script come app web

Per eseguire il deployment di uno script come applicazione web:

  1. In alto a destra del progetto di script, fai clic su Esegui il deployment > Nuovo deployment.
  2. Accanto a "Seleziona tipo", fai clic su Abilita tipi di deployment > App web.
  3. Inserisci le informazioni sulla tua app web nei campi in "Configurazione deployment".
  4. Fai clic su Esegui il deployment.

Puoi condividere l'URL dell'app web con gli utenti che vuoi utilizzare, a condizione che tu abbia concesso loro l'accesso.

Testa il deployment di un'app web

Per testare lo script come app web:

  1. In alto a destra del progetto di script, fai clic su Esegui il deployment > Testa il deployment.
  2. Accanto a "Seleziona tipo", fai clic su Abilita tipi di deployment > App web.
  3. Sotto l'URL dell'app web, fai clic su Copia.
  4. Incolla l'URL nel browser e testa l'app web.

    Questo URL termina con /dev ed è accessibile solo agli utenti con accesso in modifica allo script. Questa istanza dell'app esegue sempre l'ultimo codice salvato ed è destinata solo ai test durante lo sviluppo.

Autorizzazioni

Le autorizzazioni per un'app web variano a seconda di come scegli di eseguirla:

  • Esegui l'app come me: in questo caso, lo script viene sempre eseguito in qualità di proprietario dello script, indipendentemente da chi accede all'app web.
  • Esegui l'app come utente che accede all'app web: in questo caso, lo script viene eseguito con l'identità dell'utente attivo utilizzando l'app web. Con questo approccio, l'app web mostrerà l'email del proprietario dello script quando l'utente autorizza l'accesso.

Incorporare l'app web in Google Sites

Per incorporare un'app web in Google Sites, è prima necessario eseguirne il deployment. È necessario anche l'URL di cui è stato eseguito il deployment nella finestra di dialogo Deploy.

Per incorporare un'app web in una pagina Sites, procedi nel seguente modo:

  1. Apri la pagina Siti in cui vuoi aggiungere l'applicazione web.
  2. Seleziona Inserisci > Incorpora URL.
  3. Incolla l'URL dell'app web e fai clic su AGGIUNGI.

L'app web viene visualizzata in un frame nell'anteprima della pagina. Quando pubblichi la pagina, è possibile che i visitatori del tuo sito debbano autorizzare l'app web prima che venga eseguita normalmente. Le app web non autorizzate presentano richieste di autorizzazione all'utente.

Applicazioni web e cronologia del browser

Può essere utile che un'app web Apps Script muova un'applicazione su più pagine o una con un'interfaccia utente dinamica controllata tramite parametri URL. Per farlo al meglio, puoi definire un oggetto di stato che rappresenti l'interfaccia utente o la pagina dell'app e inserire lo stato nella cronologia del browser mentre l'utente naviga nell'app. Puoi anche ascoltare gli eventi della cronologia in modo che la tua app web mostri l'interfaccia utente corretta quando l'utente va avanti e indietro utilizzando i pulsanti del browser. Mediante l'esecuzione di query sui parametri URL al momento del caricamento, puoi fare in modo che la tua app crei la propria UI in modo dinamico in base a questi parametri, consentendo all'utente di avviare l'app in un determinato stato.

Apps Script fornisce due API JavaScript lato client asincrone per facilitare la creazione di app web collegate alla cronologia del browser:

  • google.script.history fornisce metodi per consentire la risposta dinamica alle modifiche della cronologia del browser. Questo comprende l'invio di stati (oggetti semplici che puoi definire) alla cronologia del browser, la sostituzione dello stato più alto nell'elenco della cronologia e l'impostazione di una funzione di callback di listener per rispondere alle modifiche della cronologia.

  • google.script.url consente di recuperare i parametri URL e il frammento di URL della pagina corrente, se presenti.

Queste API della cronologia sono disponibili solo per le app web. Non sono supportati per barre laterali, finestre di dialogo o componenti aggiuntivi. L'utilizzo di questa funzionalità non è consigliato neanche nelle app web incorporate in Google Sites.