Il primo libro in italiano dedicato allo sviluppo con Google Apps Script!
Punta in alto con... Google Apps Script: per sviluppatori esperti e principianti
Hai sentito parlare di Google Apps Script ma non sai da dove iniziare?
Vorresti automatizzare alcune operazioni sui Fogli di Google o sui Google Form?
Oppure hai già cominciato a metterci mano ma non sai se stai procedendo nel modo giusto?
Ho scritto per te e per chiunque voglia avvicinarsi e approfondire lo sviluppo con il linguaggio di script Google il libro "Punta in alto con... Google Apps Script" disponibile su Amazon.
Si tratta del primo manuale tecnico in italiano dedicato interamente allo sviluppo con Google Apps Script!
Non mi sono ancora presentato... mi chiamo Michele Pisani, lavoro come Digital Analytics Manager presso una nota azienda Google Partner sul territorio internazionale.
L'esperienza che ho maturato nel settore Digitale unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità ed in tempi decisamente contenuti, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite liberando la quotidianità da noiosissime attività manuali.
Se non hai chiaro quali possono essere le potenzialità dello strumento provo a sintetizzare una risposta alle domande più comuni che solitamente mi vengono poste:
COS'E' GOOGLE APPS SCRIPT?
Google Apps Script è un linguaggio di scripting basato su Javascript che consente, con poche righe di codice, di creare script ed applicazioni che interagiscono con i prodotti della G Suite come Documenti (Google Docs), Fogli (Google Sheets), Presentazioni (Google Slides) e Moduli (Google Forms), di dialogare con altre applicazioni del colosso della Mountain View quali ad esempio Gmail, Calendar, Drive e Youtube nonché creare un ponte tra prodotti Google e servizi di terze parti con la possibilità di automatizzare e schedulare processi.
COSA SI PUO' FARE CON GOOGLE APPS SCRIPT?
Con Google Apps Script, tra le altre cose, puoi:
- Aggiungere menu, finestre di dialogo e barre laterali personalizzate a Documenti, Fogli e Moduli Google.
- Scrivere funzioni personalizzate per i Fogli di Google laddove quelle native non bastino a soddisfare le esigenze del momento.
- Pubblicare applicazioni web, sia autonome che incorporate in Google Sites, disponibili a tutti o ad uso limitato a livello di dominio.
- Interagire con gli altri servizi Google, tra cui AdSense, Analytics, Calendar, Drive, Gmail, Google+, YouTube e Maps.
- Creare componenti aggiuntivi (Add-ons), per estendere i prodotti della G Suite, e pubblicarli nel Chrome Web Store.
- Interfacciarti con database, API e web services esterni per il recupero, l'elaborazione e la gestione di dati.
- Convertire un'app Android in un Add-on per Android per poter scambiare dati con Documenti o Fogli Google di un utente su un dispositivo mobile.
QUALI VANTAGGI OFFRE GOOGLE APPS SCRIPT?
Il primo vantaggio sicuramente è che non è necessario installare alcun ambiente di sviluppo o aggiornare alcuna libreria bensì con qualsiasi browser moderno, è possibile accedere all'editor e scrivere codice.
Il secondo è che non è necessario preoccuparsi di alcuna infrastruttura hardware o servizi di hosting dal momento in cui gli script vengono salvati su Google Drive e la loro esecuzione avviene sui server di Google.
L'utilizzo del Javascript per il collegamento ai vari servizi Google, in termini di righe di codice da scrivere, è estremamente limitato se si pensa che è necessario focalizzarsi meno su come utilizzare le API e più sull'utilizzo di servizi che semplificano la programmazione avendo l'accesso alle API già integrato.
Inoltre, fattore da non trascurare, la gestione dell'autorizzazione OAuth2 in lettura e scrittura è gestita in modo automatico, ovvero non hai bisogno di utilizzare librerie esterne (come ad esempio se tu usassi il PHP o altri linguaggi diffusi per lo sviluppo web) e di gestire chiavi di autenticazione e ambiti di utilizzo delle API da codice in quanto è tutto gestito e gestibile dall'interfaccia dello strumento, per lo più in modo trasparente.
E SE NON CONOSCESSI IL JAVASCRIPT?
L'idea che sta alla base della scrittura di questo libro è quella di permettere, a chiunque abbia una conoscenza di base, anche solo a livello teorico, di HTML, CSS e Javascript, di realizzare progetti ambiziosi, che interagiscono con i prodotti Google o che ne estendono le potenzialità native. Il tutto in breve tempo e con pochissime righe di codice.
Se sei completamente a digiuno o se hai bisogno di ravvivarti le idee su HTML, CSS e Javascript potrai trovare i concetti di base corredati di esempi, orientati al mero scopo di applicarli in Google Apps Script, nel primo capitolo del libro "Punta in alto con... Google Apps Script".
IN CHE MODO IL LIBRO PUO' ESSERMI D'AIUTO?
Gli argomenti trattati ti permetteranno di:
- Realizzare componenti aggiuntivi per Fogli, Documenti e Moduli Google
- Interfacciarti con database, API e servizi esterni di Google o di terze parti
- Automatizzare flussi di lavoro e collegare tra loro gli strumenti della G Suite
- Sviluppare applicazioni web interattive ed interfacce utente usabili
- Ottenere il massimo risultato con il minimo sforzo grazie ai miei consigli su come ottimizzare le prestazioni dei tuoi script!
Di seguito la tabella dei contenuti del libro!
Contenuti del libro
A chi si rivolge questo libro
Cos'è Google Apps Script
Cosa puoi fare con Google Apps Script
I vantaggi dello sviluppo in Apps Script
Di cosa hai bisogno per iniziare
Glossario
1. Programmazione web per Google Apps Script
Le fondamenta di una pagina web: l’HTML
Lo scheletro di una pagina web, l’HTML
Tags HTML di uso frequente
Dai uno stile alle pagine con i fogli di stile
Aggiungere i CSS all’HTML
Sintassi per un buon funzionamento dei CSS
I concetti chiave del Javascript
Aggiungere Javascript all’HTML
Le variabili
Tipi di dato, operatori e array
Istruzioni condizionali, cicli e funzioni
DOM: Document Object Model
Gli oggetti del DOM
JSON: famoso formato per lo scambio di dati
Conclusioni
2. Conosci il campo di battaglia: l’editor di script
Accedere all’editor di script
Il menu, gli strumenti e l’area di lavoro
Dare un nome al progetto
La barra dei menu
La barra degli strumenti
La barra laterale dei file
L’area di lavoro
Il file Manifest: cos'è e come gestirlo
Abilitare l'uso delle API dei Servizi Avanzati
Flusso di Autorizzazione dei Google Services
Identificare e risolvere gli errori
Debug, Log e Trascrizione esecuzione
Stackdriver Logging e Stackdriver Error Reporting
I Trigger: attivatori di funzioni
I Trigger semplici
I Trigger installabili
G Suite Developer Hub
Conclusioni
3. Realizza il tuo primo progetto in Apps Script
'Hello world!' in Sheets: standalone vs bound
Interagire con i Fogli Google con gli script autonomi
Interagire con i Fogli Google con gli script associati
Funzioni, menu e bottoni personalizzati nei Fogli di Google
Funzioni personalizzate in Google Sheets con Apps Script
Menu personalizzati in Spreadsheet e Document
Bottoni che eseguono script in Spreadsheet
Le macro negli Sheets come in Excel
Creare una macro in uno Spreasheet
Conclusioni
4. Le prestazioni contano: script... e script ottimizzati
Best practice per il miglioramento delle performance
Utilizzare le operazioni in batch
Evitare l'inclusione delle librerie negli script
Utilizzare il servizio CacheService
Centralizzare le funzioni in una libreria
Gestire le librerie in Apps Script
Inviare richieste e ricevere risposte con il servizio URL Fetch
Creare un servizio Whois in 2 minuti con una GET
Inviare richieste per l’autenticazione a servizi esterni
Richieste HTTP POST con XML in input e output
Sistemi di memorizzazione dei dati
Archiviare configurazioni e preferenze utente
Memorizzare nella Cache: prestazioni > del 900%
Scrivere dati in un Foglio Google in modo performante
A cosa serve Spreadsheet.flush() e quando conviene usarlo
Interfacciarsi con database esterni
Connettersi ad un Database MySQL
Connettersi al Database di Firebase
Connettersi a BigQuery
Conclusioni
5. Ottieni il massimo dai prodotti della G Suite
Spreadsheet Service
Calcolo della marginalità sulle vendite con i Fogli Google
Metodi Javascript avanzati: map(), reduce() e filter()
Document Service
Realizzare un dizionario simultaneo in un Google Docs
Form Service
Aggiungere funzionalità nei componenti aggiuntivi dei Google Forms
Slides Service
Report in Google Slides generati automaticamente
Drive Service
Spostare i file tra le cartelle di Google Drive
Leggere il testo da immagini o file PDF tramite OCR
Calendar Service
Creare un evento con allegato in Google Calendar in modo automatico
Gmail Service
Recuperare dati da Gmail e gestirli lato codice
Conclusioni
6. Applicazioni Web ed Interfacce Utente
HTML per le Web App e per gli strumenti della G Suite
HTML per le Web App
HTML per le interfacce Utente
Comunicazione client-to-server
Scriptlets: pagine dinamiche combinando HTML e google script
Sandbox e restrizioni
Best practice per lo sviluppo di interfacce utente
Creare una semplice Web App con Apps Script
Pagine Multiple in una Web App con Apps Script
Passaggio da una pagina all’altra per mezzo dei parametri in querystring
Visualizzare il contenuto di file HTML con l’oggetto document
Agevola lo sviluppo della tua Web App con jQuery
Integrare le funzionalità di jQuery e jQueryUI in un’applicazione web
Elementi grafici, stilistici e responsive con Bootstrap
Rendi le applicazioni più fruibili integrandole in un Google Sites
Non solo applicazioni front-end: Web Service ed Execution API
Creare un Web Service con doGet() e parametri in querystring
Distribuire uno script come API eseguibile per interrogarlo da remoto
Conclusioni
Note finali
Il libro si chiama "Punta in alto con... Google Apps Script" ed è disponibile su Amazon!
Se sei pronto a diventare un esperto nella programmazione in Google Apps Script non posso fare altro che augurarti una buona lettura e soprattutto... Buon divertimento!
SCARICA I CODICI CONTENUTI NEL LIBRO
I codici contenuti nel libro sono scaribabili in forma integrale al seguente link: codici esempi del libro (NOTA: nel rispetto di chi ha dato il suo contribuito acquistando il libro, l'archivio è protetto da password).
La parola chiave si trova all'interno delle parentesi quadre nell'ultima riga dell'ultima pagina del capitolo 2.
Salve Pisani! Premetto, come sempre, le mie più sincere congratulazioni per l'opera di assistenza e divulgazione degli ambienti GAS, molto preziosi per un pubblico, come me, poco esperto.
Ho acquistato di recente il tuo libro che sto leggendo con interesse anche se con qualche difficoltà di apprendimento dovuta sicuramente alla mie conoscenze elementari in questo mondo.
Vorrei solo sapere semmai fosse possible avere in qualche modo accesso ai numerosi esempi del tuo libro, nel formato digitale in modo da evitare la faticosa opera di trascrizione del codice dalle tue pagine al mio editor. Non so se ho fatto una richiesta troppo azzardata, a parer mio però più che plausibile.
Ciao Stefano,
grazie dei complimenti e della fiducia per l'acquisto del libro.
Nei Contenuti del libro, nello specifico a pagina XV ho inserito il link alle Risorse online, che è proprio questa pagina dove stiamo commentando.
Se guardi in fondo all'articolo trovi il link per scaricare tutti i codici presenti nel libro (e le indicazioni per la password dell'archivio).
Fammi sapere se dovesse esserci qualche problema.
Buongiorno,
chiedo cortesemente la procedura per creare e attivare una vista filtrata di un foglio al caricamento filtrando una colonna che contiente le e-mail autorizzate, quindi collegata a qull'utente connesso.
Grazie.
Ciao Riccardo,
per realizzare quello di cui necessiti direi che hai bisogno di avvalerti delle metodi delle Classi per lo Spreadsheet, come ad esempio la Classe Filter (https://developers.google.com/apps-script/reference/spreadsheet/filter) e della Classe User (https://developers.google.com/apps-script/reference/base/user) per recuperare l'utente attivo.
Se incontri qualche errore bloccante durante lo sviluppo lascia pure un commento o un messaggio sul gruppo Facebook dedicato Fatti di Apps Script: https://www.facebook.com/groups/AppsScript/ e troverai sicuramente supporto.
Gentile Michele,
ho provato ad inserire la password per estrarre i file di esempio ma risulta errata.
Non la scrivo in questo messaggio perchè probabilmente verrebbe pubblicata.
Ho trovato nel libro (ebook) le parentesi quadre ma la parola all'interno non va.
Mi può aiutare? Grazie.
Ciao Donato,
ho appena riprovato per sicurezza e ti confermo che la password funziona correttamente.
Non deve contenere le parentesi quadre ed è necessario assicurarsi di rispettare maiuscole, minuscole, simboli e spazi.
Attenzione anche che non sia inserito inavvertitamente il blocco delle maiuscole (Caps Lock) nella tastiera.
Fammi sapere. Grazie!
:-)
Lo spazio!!! Non mi risulta sul kindle ma aggiungendolo...funziona. Uff..uff.
Ottimo :)
Grazie del feedback e buon proseguimento!
Gentile Michele,
ho avuto il piacere di leggere/studiare il tuo libro che trovo molto interessante e che mi ha permesso di muovere i primi passi con gli script GAS.
Mi sono arenato su un problema: condivido dei file con i miei alunni, aperti in scrittura per far loro eseguire un compito. Alla fine vorrei togliere la condivisione in scrittura a tutti contemporaneamente. Dato che i file (fogli) sono tutti contenuti in una cartella, esiste un metodo per togliere la condivisione della stessa? ho provato a consultare "Developers.google.com" ma tutte le prove sono fallite.
Te ne sarei grato se potessi indicarmi una soluzione altrimenti grazie ugualmente.
Ciao Donato,
trovai anch'io problemi di questo tipo con i permessi sulle cartelle, lessi che file.removeViewer(utente) non sembra funzionare su file o cartelle condivise con i permessi Public e che una soluzione alternativa poteva essere quella di creare una copia della cartella condivisa in modalità Private, spostarci i file ed eliminare la cartella originale.
Se hai modo di provare fammi sapere. Grazie!
Buonasera, per motivi professionali devo assolutamente trasferire i codici VBA che utilizzo in EXCEL su google sheets. Ho acquistato il libro e mi sembra molto esplicativo ma non tratta in modo esaustivo la connessione con i database, argomento per me fondamentale. Per cortesia un paio di domande: posso connettermi da un google sheet con uno script associato ad una tabella all'interno un altro foglio google ed effettuare una quey sql sulla tabella ottenendo un resultset sul genere del recordset ADO? Esiste in javascript e quindi in app script una funzione come "copyfromrecordset" di VBA?
Grazie del supporto
Saluti
Ciao Paolo,
grazie del feedback e della fiducia.
Nel libro sono trattate le connessioni ai database Google (Firebase e BigQuery) e a MySQL data la sua diffusione. Per quanto riguarda invece la comunicazione da un Foglio con altri Fogli, se è questo che intendi, non rientra nella categoria database, si tratta di utilizzare le classi e i metodi del Servizio Spreadsheet come openById, in modo da riferirsi ad un Foglio diverso da quello corrente (nel libro il concetto in questione è descritto nel capitolo 3, in occasione dell'interazione con i Fogli dagli script autonomi, vale lo stesso se da un altro Foglio, e ripreso negli esempi del capitolo 5).
A livello di query può esserti utile questo esempio, su come estrarre dati da uno Spreadsheet tramite SQL con Apps Script e la Google Visualization API, potrebbe essere un valido spunto: https://www.appsscript.it/tutorial/estrarre-dati-da-uno-spreadsheet-tramite-query-sql-con-apps-script-e-la-google-visualization-api/
Per copiare un range di valori e salvarlo nello stesso o in un altro Foglio ci sono i metodi getRange(), getValues() e setValues() sui quali si basano la maggior parte di operazioni di gestioni dei dati negli Sheet. Anche questi li trovi utilizzati negli esempi del capitolo 3.
Spero di averti dato dei validi suggerimenti :) Un saluto,
Michele
Sono alla ricerca di un esperto in app script potrei avere i tuoi contatti, grazie.
Ciao Riccardo,
inviami gentilmente la richiesta tramite il form nella pagina dei contatti https://www.appsscript.it/contatti/ in questo modo posso avere un'anticipazione della tua richiesta e mi arriva direttamente il tuo indirizzo email per risponderti. Grazie!
Buongiorno Riccardo sto leggendo il libro ed esercitandomi con qualche tuo esempio. Ho qualche problema con l'esempio 2.16 e con l'utilizzo della funzione OnEdit(e) che mi da (anche su altri miei script) errore del tipo
TypeError: Cannot read property 'range' of undefined
onEdit @ Codice.gs:4
Mi puoi gentilmente aiutare?
Grazie
Denis
Ciao Denis,
quello che hai evidenziato non dovrebbe essere un problema di codice, quell'errore te lo dà probabilmente perché stai eseguendo la funzione direttamente dall'editor.
Il trigger onEdit(e) funziona quando l'esecuzione di tale funzione avviene in modo automatico quando effettui una modifica direttamente sul Foglio di Google. In tal caso potrai vedere il valore di "col" in Esecuzioni espandendo la relativa esecuzione.
PS: mi chiamo Michele :)
Perfetto... tutto ok.
Scusa per il nome... il multitasking a volte mi frega.
Grazie
Denis
salve ho acquistato il libro e ho cercato di accedere all'area per scaricare il codice degli esempi ma cliccando sul link ottengo il seguente errore This site can’t be reachedmedia.bigbossweb.com’s server IP address could not be found. prima ancora che possa inserire la pasword
Ciao Manilo,
grazie della segnalazione! C'è stato un problema di rinnovo del dominio menzionato da parte del provider che lo ospita. La situazione è stata ripristinata.
Fammi sapere se riesci a scaricare correttamente i codici. Grazie!
Caro Michele,
ho appena acquistato il libro, mi sembra molto ben fatto ma non riesco ad accedere ai codici. La password che ho trovato alla fine del secondo capitolo non ne vuole sapere di aprire i file.
Qualche suggerimento?
Grazie
Andrea
Caro Michele,
ho appena acquistato il libro, mi sembra molto ben fatto ma non riesco ad accedere ai codici. La password che ho trovato alla fine del secondo capitolo non ne vuole sapere di aprire i file.
Qualche suggerimento?
Grazie
Andrea
Ciao Andrea, grazie intanto per la fiducia :) per quanto riguarda la password assicurati che ci sia il punto e lo spazio. Fammi sapere!
Salve, ho acquistato il libro ma con le password indicata (ulima pagina capitolo 2, stringa tra parentesi) non riesco ad aprire i file di esempio. Grazie per un aiuto.
Ciao Giuseppe, grazie intanto per la fiducia :) per quanto riguarda la password assicurati che ci sia il punto e lo spazio. Fammi sapere!
Ok, funziona!
Grazie.