App web

Se crei un'interfaccia utente per uno script, puoi pubblicarlo come un'app web. Ad esempio, uno script che consente agli utenti di pianificare appuntamenti con i membri di un team di assistenza sarebbe meglio presentato come un'app web, in modo che gli utenti possano accedervi direttamente dal proprio browser.

Sia gli script autonomi sia gli script associati alle Google Workspace applicazioni possono essere convertiti 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 di 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 della richiesta. La struttura dell'oggetto evento è mostrata nella tabella seguente:

Campi
e.queryString

Il valore della porzione di stringa di query dell'URL o 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 con 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, 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 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, puoi passare parametri come username e age a un URL come mostrato di seguito:

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

Successivamente, puoi visualizzare i parametri in questo 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
}

Esegui il deployment di uno script come app web

Per eseguire il deployment di uno script come app web, segui questi passaggi:

  1. In alto a destra nel progetto dello 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 sull'app web nei campi in "Configurazione del deployment".
  4. Fai clic su Esegui il deployment.

Puoi condividere l'URL dell'app web con gli utenti a cui vuoi utilizzare la tua app, purché tu abbia concesso loro l'accesso.

Testare il deployment di un'app web

Per testare lo script come app web, segui questi passaggi:

  1. In alto a destra nel progetto di script, fai clic su Esegui il deployment > Testa deployment.
  2. Accanto a "Seleziona tipo", fai clic su Abilita tipi di deployment > App web.
  3. Nell'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 che dispongono dell'accesso in modifica allo script. Questa istanza dell'app esegue sempre il codice salvato più di recente ed è destinata solo ai test durante lo sviluppo.

Autorizzazioni

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

  • Esegui l'app come me: in questo caso, lo script viene sempre eseguito con l'identità del 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 che utilizza l'app web. Questo approccio di autorizzazione fa sì che l'app web mostri l'email del proprietario dello script quando l'utente autorizza l'accesso.

Incorpora la tua app web in Google Sites

Per incorporare un'app web in Google Sites, è necessario prima eseguirne il deployment. Ti serve anche l'URL implementato nella finestra di dialogo Deploy.

Per incorporare un'app web in una pagina Siti, segui questi passaggi:

  1. Apri la pagina Siti in cui vuoi aggiungere l'app 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, i visitatori del tuo sito potrebbero dover autorizzare l'app web prima che venga eseguita normalmente. Le app web non autorizzate presentano richieste di autorizzazione all'utente.

App web e cronologia del browser

Può essere auspicabile che un'app web Apps Script simuli un'applicazione di più pagine o che abbia un'interfaccia utente dinamica controllata tramite parametri URL. A questo scopo, puoi definire un oggetto di stato che rappresenti l'interfaccia utente o la pagina dell'app e inviare lo stato alla 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'UI corretta quando l'utente naviga avanti e indietro usando i pulsanti del browser. Se esegui una query sui parametri URL al momento del caricamento, puoi fare in modo che la tua app crei dinamicamente la sua UI 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 offre metodi per consentire una risposta dinamica alle modifiche della cronologia del browser. Ciò include: push degli stati (oggetti semplici che puoi definire) nella cronologia del browser, sostituzione dello stato principale nello stack della cronologia e impostazione di una funzione di callback del 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. Inoltre, l'utilizzo di questa funzionalità non è consigliato nelle app web incorporate in un sito Google Sites.