App web

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

Sia gli script autonomi sia gli script associati alle applicazioni Google Workspace 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 di richiesta

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

Campi
e.queryString

Il valore della parte della stringa di query dell'URL o null se non è 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 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

Dopodiché, puoi visualizzare i parametri nel seguente modo:

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

Nell'esempio riportato sopra, 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:

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

Puoi condividere l'URL dell'app web con le persone che vuoi che la utilizzino, a condizione che tu abbia concesso loro l'accesso.

Testare il deployment di un'app web

Per testare lo script come app web:

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

    Questo URL termina con /dev e può essere accessibile solo agli utenti con 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 come te, il 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.

Incorporare l'app web in Google Sites

Per incorporare un'app web in Google Sites, devi prima eseguire il deployment. Devi anche avere l'URL del deployment dalla finestra di dialogo Deploy.

Per incorporare un'app web in una pagina Sites:

  1. Apri la pagina di Sites in cui vuoi aggiungere l'app web.
  2. Seleziona Inserisci > URL per l'incorporamento.
  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 utile che un'app web Apps Script simuli un'applicazione multipage o una con una UI dinamica controllata tramite parametri URL. Per farlo bene, puoi definire un oggetto stato per rappresentare 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 naviga avanti e indietro con i pulsanti del browser. Eseguendo 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 uno stato particolare.

Apps Script fornisce due API JavaScript asincrone lato client 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. Ciò include: l'inserimento di stati (semplici oggetti che puoi definire) nella cronologia del browser, la sostituzione dello stato principale nello stack della cronologia e l'impostazione di una funzione di callback del listener per rispondere alle modifiche della cronologia.

  • google.script.url fornisce i mezzi per recuperare i parametri URL e il frammento URL della pagina corrente, se sono presenti.

Queste API della cronologia sono disponibili solo per le app web. Non sono supportati per barre laterali, finestre di dialogo o componenti aggiuntivi. Questa funzionalità è sconsigliata anche per l'utilizzo in app web incorporate in un sito Google.