Se crei un'interfaccia utente per uno script, puoi pubblicarlo come un'app web. Ad esempio, uno script che consente agli utenti di prenotare appuntamenti con i membri di un team di assistenza potrebbe essere presentato come un'app web in modo che gli utenti possano accedervi direttamente dai loro browser.
Sia gli script autonomi sia gli script associati ad Google Workspace applicazioni possono essere trasformati in app web, a condizione che soddisfino i requisiti riportati di seguito.
Requisiti per le app web
Uno script può essere pubblicato come app web se soddisfa i seguenti requisiti:
- Contiene una funzione
doGet(e)
odoPost(e)
. - La funzione restituisce un oggetto servizio HTML
HtmlOutput
o un oggetto servizio di contenutiTextOutput
.
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 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 porzione di stringa di query dell'URL oppure name=alice&n=1&n=2 |
e.parameter |
Un oggetto di coppie chiave/valore che corrisponde ai parametri della richiesta. Viene restituito solo il primo valore per i parametri con più valori. {"name": "alice", "n": "1"} |
e.parameters |
Un oggetto simile a {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
Il percorso dell'URL dopo |
e.contextPath |
Non utilizzata, sempre la stringa vuota. |
e.contentLength |
La lunghezza del corpo della richiesta per le richieste POST o 332 |
e.postData.length |
Uguale a 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
A questo punto, puoi visualizzare i parametri in questo modo:
function doGet(e) {
var params = JSON.stringify(e);
return HtmlService.createHtmlOutput(params);
}
Nell'esempio precedente, doGet(e)
restituisce l'output seguente:
{
"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 implementare uno script come app web, segui questi passaggi:
- In alto a destra del progetto di script, fai clic su Esegui il deployment > Nuovo deployment.
- Accanto a "Seleziona tipo", fai clic su Abilita tipi di deployment > App web.
- Inserisci le informazioni sulla tua applicazione web nei campi sotto "Configurazione del deployment".
- Fai clic su Esegui il deployment.
Puoi condividere l'URL dell'app web con chi vuoi utilizzare l'app, a condizione che tu abbia concesso l'accesso.
Testa il deployment di un'app web
Per testare lo script come app web:
- In alto a destra del progetto di script, fai clic su Esegui il deployment di > Esegui il deployment dei test.
- Accanto a "Seleziona tipo", fai clic su Abilita tipi di deployment > App web.
- Sotto l'URL dell'app web, fai clic su Copia.
Incolla l'URL nel browser e testa la tua app web.
Questo URL termina con
/dev
e può essere visualizzato solo dagli utenti che hanno accesso in modifica allo script. Questa istanza dell'app esegue sempre il codice salvato più di recente ed è destinata al solo test durante lo sviluppo.
Autorizzazioni
Le autorizzazioni per un'app web variano in base al modo in cui scegli di eseguire l'app:
- Esegui l'app come me: in questo caso, lo script viene sempre eseguito come te, 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 che utilizza l'app web. Questo approccio all'autorizzazione fa sì che l'app web mostri l'indirizzo email del proprietario dello script quando l'utente autorizza l'accesso.
Incorporare la tua app web in Google Sites
Puoi anche incorporare app web sia nella versione classica che nella nuova versione di Google Sites.
Incorporare un'app web nella nuova versione di Sites
Per incorporare un'app web, devi prima aver eseguito il deployment. È necessario
anche l'URL distribuito dalla finestra di dialogo Deploy
.
Per incorporare un'app web in una nuova versione di Sites, segui questi passaggi:
- Apri la pagina Sites in cui vuoi aggiungere l'app web.
- Seleziona Inserisci > Incorpora URL.
- 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 visualizzatori del tuo sito potrebbero dover autorizzare l'app web prima che venga eseguita normalmente. Le app web non autorizzate presentano all'utente richieste di autorizzazione.
Incorporare un'app web nella versione classica di Sites
Puoi associare uno script a un sito della versione classica di Google Sites come faresti per un documento o un foglio Google. Per creare uno script associato, visita il tuo sito, fai clic sull'icona a forma di ingranaggio , quindi seleziona Gestisci sito. Nella pagina Gestisci sito, fai clic su Script per le app nel menu di navigazione a sinistra, quindi sul pulsante Aggiungi nuovo script. Si apre un nuovo script nell'editor di Apps Script, dove puoi
codificare ed eseguire il deployment della tua app web.
Puoi anche incorporare la tua app web in una pagina. Puoi associare l'app web al sito oppure utilizzare qualsiasi app web di cui hai l'URL. Per incorporare un'app web in una pagina di Google Sites:
- Apri un sito esistente per il quale disponi dell'accesso in modifica o crea un nuovo sito.
- Vai alla pagina del sito in cui vuoi incorporare l'app web.
- Fai clic sull'icona di modifica, quindi su Insert > Google Apps Script.
- Scegli lo script dall'elenco che rappresenta la tua app web. Se la tua app web non è associata a questo sito, puoi incollare l'URL dell'app web.
- Fai clic sul pulsante Seleziona, scegli le opzioni desiderate dalla finestra di dialogo successiva e fai clic su Salva.
- Salva le modifiche nella pagina. Dopodiché dovresti vedere l'app web incorporata nella pagina di Sites.
App web e cronologia del browser
Può essere opportuno che un'app web Apps Script simula un'applicazione a 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 la UI o la pagina dell'app ed effettuare il push dello stato alla cronologia del browser mentre l'utente naviga nella tua app. Puoi anche ascoltare gli eventi della cronologia in modo che l'app web mostri l'UI corretta quando l'utente naviga avanti e indietro con i pulsanti del browser. Puoi eseguire query sui parametri URL al momento del caricamento per fare in modo che la tua app crei dinamicamente la propria UI in base a tali parametri, consentendo all'utente di avviarla in un determinato stato.
Apps Script fornisce due API JavaScript lato client asincrone per aiutarti nella creazione di applicazioni web che sono collegate alla cronologia del browser:
google.script.history
fornisce metodi per consentire una risposta dinamica alle modifiche della cronologia del browser. Ciò include: il push di stati (semplici oggetti che puoi definire) nella cronologia del browser, la sostituzione dello stato superiore nello stack della cronologia e l'impostazione di una funzione di callback dell'ascoltatore per rispondere alle modifiche della cronologia.google.script.url
fornisce i metodi per recuperare i parametri URL e il frammento di URL della pagina corrente, se presenti.
Queste API di cronologia sono disponibili solo per le app web. Non sono supportati per le barre laterali, le finestre di dialogo o i componenti aggiuntivi. Inoltre, questa funzionalità non è consigliata per essere utilizzata nelle app web incorporate in un sito Google.