Se crei un'interfaccia utente per uno script, puoi pubblicarlo come app web. Ad esempio, uno script che consente agli utenti di fissare appuntamenti con i membri di un team di assistenza è preferibile presentarlo come app web in modo che gli utenti possano accedervi direttamente dai loro browser.
Sia gli script autonomi sia gli script associati a app 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 HTTPPOST
, Apps Script esegue doPost(e)
. In entrambi i casi, l'argomento e
rappresenta un parametro evento che può contenere informazioni su eventuali parametri di richiesta. La struttura dell'oggetto evento è mostrata nella tabella
di seguito:
Campi | |
---|---|
e.queryString |
Il valore della parte di stringa di query dell'URL o name=alice&n=1&n=2 |
e.parameter |
Un oggetto di coppie chiave/valore che corrispondono ai parametri di richiesta. Per i parametri con più valori viene restituito solo il primo valore. {"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 utilizzato, 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 del messaggio POST text/csv |
e.postData.contents |
Il testo del contenuto 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
Poi 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:
- In alto a destra nel progetto di script, fai clic su Esegui il deployment > Nuovo deployment.
- Accanto a "Seleziona tipo", fai clic su Attiva tipi di deployment > App web.
- Inserisci le informazioni sulla tua app web nei campi della sezione "Configurazione del deployment".
- Fai clic su Esegui il deployment.
Puoi condividere l'URL dell'app web con chi vuoi che la utilizzi, a condizione che tu abbia concesso l'accesso.
Testare il deployment di un'app web
Per testare lo script come app web:
- In alto a destra nel progetto di script, fai clic su Esegui il deployment > Testa i deployment.
- Accanto a "Seleziona tipo", fai clic su Attiva tipi di deployment > App web.
- Sotto l'URL dell'app web, fai clic su Copia.
Incolla l'URL nel browser e testa l'app web.
Questo URL termina con
/dev
e può essere visualizzato solo dagli 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 alle autorizzazioni fa sì che l'app web mostri l'indirizzo 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, è necessario prima eseguirne il deployment. Ti occorre anche l'URL del deployment dalla finestra di dialogo Deploy
.
Per incorporare un'app web in una pagina di Sites:
- Apri la pagina Sites in cui vuoi aggiungere l'app web.
- Seleziona Inserisci > URL per l'incorporamento.
- 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 opportuno che un'app web di Apps Script simuli un'applicazione su più pagine o un'applicazione con un'interfaccia utente dinamica controllata tramite parametri URL. Per farlo correttamente, puoi definire un oggetto stato per rappresentare la pagina o l'interfaccia utente dell'app e inviarlo alla cronologia del browser man mano che 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 generi dinamicamente la sua UI in base a questi parametri, consentendo all'utente di avviarla in un determinato stato.
Apps Script fornisce due API JavaScript lato client asincrone per aiutarti a creare app web collegate alla cronologia del browser:
google.script.history
fornisce metodi per consentire una risposta dinamica alle modifiche alla cronologia del browser. Sono inclusi: l'invio di stati (oggetti semplici che puoi definire) alla cronologia del browser, la sostituzione dello stato superiore nella pila della cronologia e l'impostazione di una funzione di callback dell'ascoltatore per rispondere alle modifiche alla cronologia.google.script.url
fornisce i mezzi per recuperare i parametri URL e il frammento URL della pagina corrente, se presenti.
Queste API di cronologia sono disponibili solo per le app web. Non sono supportati per barre laterali, finestre di dialogo o componenti aggiuntivi. Inoltre, questa funzionalità non è consigliata per l'uso nelle app web incorporate in un sito Google.