Google Apps Script?
Google Apps Script è un linguaggio di scripting basato su che gira nella cloud. Consente in modo semplice di automatizzare task, interfacciandosi alle e a servizi di terze parti.
Interessante…cosa posso farci?
Le integrazioni e le attività che si possono realizzare con questo strumento sono tantissime, ma tanto per dare un’idea diciamo che è possibile:
- Creare funzioni Spreadsheet personalizzate e invocarle come quelle predefinite;
- Inviare mail e una calendar invitation ad una lista di contatti prelevati da un database MySQL;
- Creare interfacce grafiche per raccogliere dati da inserire in un documento su Google Docs;
- Ricercare e aggregare dati prelevendoli da uno spreadsheet al verificarsi di certi eventi (trigger) e inviarli via mail.
Da dove parto per imparare?
La domanda è: “Quanto è facile iniziare a scrivere questi Script?“. E la risposta è: “Google!“. Il colosso della Silicon Valley ci ha ormai abituato che è possibile avere servizi di alta qualità senza spendere un centesimo (mi viene in mente un solo altro esempio di questo, ma non ha molto a che fare col software) e anche in questo caso le cose stanno così. Cominciamo dalla documentazione messa a disposizione del neofita:
- Centinaia di ;
- Una dettagliatissima ;
- Una altrettanto accurata , che fornisce dettagli sugli oggetti e i metodi inclusi.
Se volessi scrivere il mio primo Script?
Presto fatto: apriamo o creiamo un nuovo SpreedSheet su Google Docs; all’interno del menu a tendina Tools
vediamo che sono presenti 3 voci relative allo Scripting:
- Script gallery: in questa sezione possiamo cercare e installare degli Script che sono stati condivisi e messi a disposizione, sia da Google che da altri sviluppatori;
- Script Manager: in questa sezione possiamo gestire gli Script, previa autorizzazione, richiesta in funzione dei servizi che lo Script stesso va ad utilizzare. Ad esempio l’invio della mail richiede preventiva autorizzazione, che deve però essere data soltanto la prima volta, dopodiché lo Script è lanciabile senza ulteriori passaggi;
- Script Editor: l’editor dove vengono codificati gli Script utilizzando il linguaggio .
JavaScript? Doh!
Se siete come me avrete pensato: “Noooo, !”. Ma devo ammettere che basta una fuggevole occhiata allo Script Editor
per capire che, quando i duri come Google giocano, il gioco si fa…semplice:
Siamo assistiti dall’autocomplete (CTRL+SPAZIO
) e da un efficace debugger; abbiamo diverse combinazioni di tasti che semplificano il lavoro (tante sono quelle di Eclipse); infine le API sono progettate in modo da essere assolutamente intuitive, tanto che Google dichiara che per utilizzare questo scripting tool non è necessario essere programmatori!
Avanti con un esempio
Realizziamo una GUI utilizzando gli UI Services; in questa GUI richiediamo all’utente di inserire un dato che viene riportato in automatico in uno SpreadSheet. Gli UI Services realizzano GUI richiamabili da:
- Google Sites;
- Google SpreadSheet, il nostro caso;
- Direttamente da un URL, previa pubblicazione e autorizzazione.
Tipi di UI Objects
Per realizzare una GUI abbiamo a disposizione due tipi di oggetti:
- Widgets: sono i componenti di ogni tipica GUI, quali Text Box, Text Area, Radio Buttons, Check Boxes, Labels, Buttons etc;
- Panels: sono dei contenitori che possiamo riempire con Widgets. Ce ne sono di diversi tipi, quali Form Panel, Horizontal Panel, Vertical Panel, Flow Panel etc.
Ecco lo Script
Quindi a partire da uno SpreedSheet precedentemente creato andiamo nel menu Tools
-> Script Editor...
e digitiamo il codice seguente:
In pratica abbiamo:
- Creato una nuova applicazione;
- Creato un nuovo pannello;
- Riempito il pannello con una Label, un Text Box e un pulsante;
- Inserito il pannello nella applicazione;
- Ricavato lo SpreadSheet corrente e gli abbiamo chiesto di visualizzare la GUI.
Se ora clicchiamo sul pulsante Run
e ci spostiamo sul tab del browser che contiene lo SpreadSheet vedremo la nostra GUI in tutto il suo splendore:
Adesso dobbiamo agganciare un handler al pulsante, in modo che al click chiami una funzione che reperisca il valore della Text Box e lo inserisca nello SpreadSheet corrente:
function showDialog() { var app = UiApp.createApplication().setTitle("CoseNonJaviste Google Script Tutorial"); var panel = app.createVerticalPanel(); panel.add(app.createLabel("Inserisci il tuo Nome")); panel.add(app.createTextBox().setName("nome").setId("nome")); var button = app.createButton().setText("Invia"); var handler = app.createServerHandler("onInvia"); handler.addCallbackElement(panel); button.addClickHandler(handler); panel.add(button); app.add(panel); var doc = SpreadsheetApp.getActive(); doc.show(app); } function onInvia(e) { var app = UiApp.getActiveApplication(); var nome = e.parameter.nome; var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow() + 1; var lastCell = sheet.getRange("A"+lastRow); lastCell.setValue(nome); }
Come si evince dal codice, che risulta essere molto intuitivo, andiamo a inserire il nome digitato dall’utente nella Text Box in una nuova riga nella colonna A dello SpreadSheet.
Non resta che provare…
Per vedere lo Script realizzato in azione basta lanciarlo e verificare che il comportamento sia quello atteso:
Conclusioni
Lo script è terminato: andiamo in pace, fiduciosi che con questi strumenti e con le loro future release, sicuramente sempre più potenti, la nostra vita sarà probabilmente più…scriptabile!
Alla prossima!
Pingback: ()
Pingback: ()