Una panoramica sul linguaggio chepud
cambiare l'approccio @igervizi
di Google: daglI'segipt gia pronti
alla scoPegta delle Brincipali funzicni,
agn solo pePpregrammatori.Le applicazioni di Google non hanno bisogno di presentazioni: dal motore di ricerca
a Gmail, da Maps alla suite di produttivita, sono strumenti tra i migliori oggi dispo-
nibili online. Ma Cuniverso Google é cosi vasto da includere anche tool che non tutti
conoscono. Tra questi rientrano di sicuro le funzioni di scripting: tramite JavaScript si
pud infatti far comunicare tra loro le applicazioni, personalizzare ambiente di lavoro
delle App di Google o automatizzare alcuni compiti ripetitivi e di controllo. Ma anche
chi@ consapevole di queste funzioni spesso se ne tiene alla larga, forse per la poca
esperienza con gli ambienti di sviluppo. Se fate parte della schiera degli utenti Google
che vorrebbero ma non osano, nelle prossime pagine troverete tutto il necessario per
muovere i primi passi: iniziare a usare i Google Apps Script, infattl, & pid semplice di
quanto non sembri. € se per diventare esperti ci vuole un po’ di tempo, proseguendo
la lettura forniremo le indicazioni per partire con il piede giusto.
macs PRES | Googe ons Sore
de: programmi, persomalizzandoh Bull web apps and
iiwcssmefiessawers automate tasks with
mana ewe sete Google Apps Script
nta il copione di ghipsopinesmactcneninigtroneit
tuna pitceteatale,éauttgliefettiun _Satesyeam tase wr as >
programma in miniatura, Disporre di E
lun matore di scripting integrato alin
temo dun peogeamms od una suite di
applicazion significa avere tale mani
tun linguaggio dl programmazione in
sada interagre con V'applicazione
essa e i altivame le funzion,
Molte delle casiddette appliaziont di
produttvita oftrona funzioni di auto
Tharionee personalizzavione,a partite
Gal punto dislerimento dele suite per
ffi: Microsoft ice integra da mol
tianni un vero ambiente i svilppo
un linguaggio di programmazione
creato ad hoe, Visual Base for Appi
cations, La carta vincente di Vba & la Gliserip dele Google Apps sono uno stumento potente erelatvamente sempice da ilzzare
Semplicith con eat qualunque utente per far comunicare talon le applicant Google eautomaizare leur compl meccanic
Example Srpts Developer ReferenceNeetarensit sere estn eenteciam renreth
itseinenant terete eet tee 3
Tole eee Sn ae eee ety)
ee
Sgn ck ec
ES ae ete
ee a tac
a .
aaj penes))
sega rete ue
Holts tale appicaion’ pid potent offronalinguag sriptngavanzat:AutoCed,
Pe exempio. propane un eet del complesseUnguagge dl pregrammesione Lip.
Dud creare nuvi script ¢ comand at» sistem operaivi possono trarce van
Traversollvegistatoredimacro, ancora taggio dasript pit o meno compless
‘gg una delle forme di sutomazione per automatizarealcane fanzioni Gia
pil conoseiut intuitive. LibreOfice, | febatch deriva da MsDossono una
tuno dei fork di maggior sucesso del _ radimentale forma di scripts anche es
progetto OpenOillice, si spinge in un tratia pet lo plu di serie dicomandi di
fertosenso ancora pitinis,« permette shell da eseguir in sequenca,alcune
Di suoi utenti dls scegliere ta quattro semplic stature di control eles
linguaggid scripting (Python, Java,Ja-_cuzione Ii rendono comungue similia
woSeripte Basic) uth dispomoialin- microscopic, semplici programms. Le
temo del suo ambiente di sviluppo e evoluzioni di questo slatema di auto
‘utomazione. Srumentanaloghi sono mazione, Windoves Scripting Hoste gli
' dlsposizone deg utent di WondPer- script di PowerShell, pexmeltono oggh
fest, CorelDrave, AutoCad e di molti__ di realizzaresolzioni ben pi com
altrsoftwaredifustinrutte mondo, plesse integrate con tutto le funzioni
Estondendo un po'lldiscorso,anchei di Windows; e presto nelYambiente
Windows arriverd anche Bash, una
delle shel pia potenti e diffuse negli
fambienls Unix/ Linus, Da ultino, ma
‘certo non per importanca, uta fam
in delle applicazioni Googie offre at
Soi molt utenti la possibiliadiceare
funcioni personalizzateall interno dei
documento piccole applicaion! sand
alone, colegare le numerose appli=
‘iziont della plattaforma e far 3 che
‘omunichino tr loro. Questo€ possi=
bile grazie a un linguaggio di scripting
basato su Javascript e un ambiente di
sviluppo integrated certo perfetibile
ma semplice da uilzzare, ma soprat-
tuto grazie al accesso istantaneo a
tutte le fanzioni che siamo abituat ad
ulizzore nelle appicazionideleco-
sistema Google
In questo artcolo cercheremo di mo-
strate na pieola parte aici che sh
Dp fare, attraverao I funzion| di seip
ting delle Google Apps. Otfiremouna
rapida ponoramica del lingueggio ©
dell ambiente di sviluppo,cvispieghe-
remo come sfruttare al meglio questa
tecnologia, Cercheremo di rivolgerct
non soloalprogeamaator git abitual
ad altriambienti inguaggi,maanche
i somplic utenti delle pplicazioni
oogle che desderino seoprie a via
pil rapida ~ grazie anche alla grande
mote di materiale gi pronto alluso
dlsponibile in rte ~ per rendere pi
Produttive le applicazion\e | servizi
iliceati tut gor
LA PIATTAFORMA
GOOGLE APPS
Detinire Google ~ © meglio, tentare
di delimitare con una definizione i
ragsio di azione di Google nel Web
una vera impresa. Quella di Google
una piattaforma vast, forse Ia pi
Aampia tra quelle ogg a disposizione
‘degli utent di tutto ll mondo, fats dt
pplicazionie servi di cu il motore
Al ricerca solo la proverbiale punta
dell eherg.Echea vole pus sembrare
addirittra un po" confusa, sia per la
veloetd con cu il paesaggio cambia,
tea novi annine, modifiche © can
cellaioni di servizi, sia per termini
Simill ullizzai per definive servizi,
fentite applicaziont different. Con
la definizione Google Apps si indi-
ca una serle dl applicazion! gratuite
‘ospitate sui server Google, ¢ sicira>
‘mente glabonnotea ttt letor i PC
Praesionale: Gmail, Calendat, Dive,@ COME FARE > Software
Google
Un unico account. Tutto il mondo Google.
Ace con tuo acount Google
Laplataforma Web di Google comprend numeros servi tut accessblramite un unico
account Non ®nacessai che indrizzo ema ulizzato come account appartengaa Gal,
anche se questo rene un po’ pi sempli alee operaion
Le appicazion! Googe includono una sutediprogrammi per ufo (Sbets, Docs Forms)
la posta elettronca dl Galo storage nel cloud a rive, Mappe one, calendar,
Uhangout. I blogging la erezxione di pagine Web tuto utlzzabla vi browser.
Google for Work
MOngOoRO
Per tzalende Google propane un pacchett clamato Google Apps for Work, che offre tra
{altro la possiblia geste conLinfrastruttura Gmail anche account posta su doin
personal un maggie spazio dl archivanione in Drive e supperto tecnico 24/7.
Docs, Sheets ¢ Forms. La plattafoema
discripting di Google i pud cllegare
fa queste applicazions ea tutti glial
servi che fanno eapo allazionda di
Mountain View: Contacts, Groups,
‘Maps, Translate, Sites cos via. tute
queste applicazioni si pid accesere
sMraverso un unico account Google,
“reato gratuitamente raggiumgend la
‘ogi up:/couatsgegle am. Aoge
account Gmail leave di posta gra
tuite con estensione Ogmai.com) viene
Google completo, quind non & quasi
ai necessaio creare un account spe
‘ico per accedere alle Google App
‘Ma non e Tunien sada nulla vcta
infat di ereareun account Google (002
Geral) per aceedeve alle applcaziont
della piatiaforma utilizzando come
‘nome account un altro inditiz0 email,
‘el nostro esemplo infe@nomeasienda,
can. In questo scenario, ito
ier. pub aeceder tutti iservizh
Google taniae Gmail ein seguito st
decide di assocane all account anche
‘unindirizze Gmail nuove dizeca (per
esempio fomomezcienda@gnailcon),
‘questo diventerindirizzo principale
dollaccount il vecchio infownemee-
lovida.com eimagrs ancora valida ma
‘ark relegato al ruolo di indrizz0
condario, da uiizzare ad esempio pet
I recupero della password. Perlando
delle Google Apps, spomberiamo su
tilcampo da in possibile frainten=
iment: con questo teemine parlome,
-genericamente delle applicazioni Go-
‘ple eloncate net paragrai precedent
Google Appe & purtroppo simile al
rome della suite distrumentl a pa-
sgamento destinat ai cient busines.
Lattusle nome completo di questa su
‘Me Google Apps for Work (un tempo
Google Apps for Business).e servizi
ageluntivt offer con questa formula
includone la possibilita di utiizzare
Vinfrastruttura di gestione della posta
«fi Gmail con indiriazt email del pro-
prio dominio aziendale, un maggione
spavio di archiviazione in Drive © un
supporto telefonice 24/7. Questa defi-
‘alone non riguanda quindefunaioad
di scripting, che sono a completa di=
sposizione di tuttglt acount Google,
sratullies pagamento,
script delle Google Apps possono
‘essere divis in dite grand categorie
script stand alone, che possoao eseee
‘seguit in mode autonome, eseriptin-
eit all'interna dun documento cke-
10 con un’alta applicazione Google.COME FARE > Software
IMPORTARE ED ESEGUIRE UNO SCRIPT GIA PRONTO
Google Apps, spud corincare con Uimportare uno srt
japronto tra molt) ches travana ingra per laRete,
‘Vista le quantita & materiale repertite anne, per met utentt
{unlzra pt comune del Ireuaggle dl senting araproprin quello
prendere spunto dat Web, marificande script gl esistentiin
base alle propre esigenze, meno inelmente Scoprerna qui
[asso per paseo, comeimportare una script terse part,
ltpeme passe # rover una ovis cl sperimentare. Per questo
‘esempoutlizzerems primo del script prapostda Gacgle
rel suoltutorbl. Lino & tps developers googlecorn/
cpps-srptfovervew#set_/_up Selanonsiro @copiama rel
‘appuntt testo dello script. per eserpio con la scorctoa da
‘tir Ciro (Figure A). Sl trata dune erpt star alone, guna
{ambit dl srluppo non deve essere richlamatoatraverso
luna eaconds applicpone:isagna ivece aprre rettamente
P er complee prim pass contarblente degli script delle
Progta senza ttle
eta an Yah Sete Rone Cate
BH 00 + mm
: oO
GB Wp st. goge com acon) NCA eB IS
] Prova.l mponazone sont
Pm dies tem faaps Pabicn Rose Gus
aay
on eoneseeore
eo
oe
Unterfacca dt svlunpo,raggungenda indies hips script.
‘google.com, Se 8s prima volts che stllzzano gl serpt dt
‘Google t!brawser apr una paga ci benvenuto (Figura B) nc
‘saranecessario fare cl sul pusente Start Scripting. Altrienent
‘Joprir drettarmente la paghs principale deltombiente dl
‘supp (Figura). Nel fle che siapreautemascamense, Coca
‘9, bisogns ebrinae il testo presente e sosttuirlo con codice
copiato dalla pagna dl pareraa (Figura). A questa punta dopo)
\Lsolvategal (figura). nome della furzione presente nea
barr degli srumanti cambiar, rpartende Krome cella Furie
sppenaincellaa (figura F)..codce pronto ad essere exegit,
‘traversal comand CreoteAndSendOacument ne men ESegu!
{rgurac).Essendola prima esecuzione deli serpt.bsogna
rie le autarzzatesnecessare (figura W). mn questo casa lo
‘scrpt era un documento a testo chiamato Hello Wort serive
ne fraceal sue tama vis via mal un nk al documenta.
Gocale Apps Serit
Build web apps and
automate tasks with
Google Apps Script =
Uaizsa Esegu runeica ose Gude
QO) & | cevemenmnaecinent- | G
Covtice gs
funetion@ COME FARE > Software
Progetto senza titolo
Fle Medien Viauaizzs Esegul Pubbica Risoce
BD > R ropmcten —aaaea oecuSTRUMENTI
= Tralvarstrament dimen tober
tiexonarue | 8 OROe _~ oa pasate per esecizone del pogramms
Inquact ro trova . quello perl debug occpano un posto
elenco da Fche 2 {iprimara nportar, acon cles
ngonokprogeta ay Ura quest ue psa viene ava
“fittest un le ‘ Unfunson etal menu a dacesa
function ayFunctien() £
una (che par defaut st site a deste
‘hhama Codcegs:nel. caso
fd scp che mplementano corron vet cone
‘uvapplicanione Web, In poche paral: qu i serivelo erg.
In questo eenco | nguagale ct programmazione €
comparranne anche fe ondamentalmanteJovaript cust
tal ean eu compare aggungono le chamate neessare per
Tonerfacci utente, colleges ci servi Googe
Inguepeuosipuacacpteanae- servo ce gla inbeckground nal dla pt scart dete oa
‘Sun pcb tologa limi im sprtve: Utero pes: ol Senco ee
Savaileesatinenedtanpress ska peg scp edpenceas® trace pre deen doumer
Seite Clsaytamtanetound Fescitane sine pplaeane We ico erp dr unmet idee
teppectan fore Fappeca pit ronaundln cksnd, mene Speers dann fm
Immedan st mondo dlls, moat animes fos merrell isos
eet Keshia Macca
‘Tmoapecite dentro I Goo-_tenruns getline dni Unt ope fe per aging
feDocrshecsTormial yon tptedi Game Aparna eineree hens ee
Se nam nplonenan ores Sus conde td dep el
egies 4% sieiaStirempaceiean
Uniggdcakeetaiurenmew CINTERFACCIA tune quince cle
micinic prcecinees eta Retinal roment duanre
‘un documento, calcolare distanze tra DI SVILUPPO della funzione di esempio myFunction().
atu contcactge:, ramaaiareaege pecans langues mactaioes na
(Satarincticamehoprateee Appestatertencanapeiee pieticepe pprnron au iae
‘ntamasn!seuriivociavera ste Cl che sie cme tte Sy a ns tn lene
TiineleapidiGrelenkecconlteappeason Cog Sectonente See che compen prog d
ICH inal lise ninade® nbotmrenivanulanieelGoed sipingoen na detest
IMepucdlucmtemcedee,* GlGaoye Dive iapendontonete ean ne uae
Aiteredcglonpicnuinbound lapeiscipsuctalsuievrare cern sgt een ee opie
tine inte iopeabil pital deCoetnae pp dla mali Se Nepereenp ard
fake Siete Miamage. putslrosdiae eremctelap: pega diera ee uct gate
Reet oer ate Pncmencieenrsatcrctets PRE tate wcannes wuss
Teal laneenrment aggre fans foe Ferree uno Enero de mostra tems
tne can let a delgeom eipleogatsurdoumrtsbae. liners bwm dg rune
cahicieealuenetimerscie gupertieklname ldremeno _speeretel mens eerie ea
Gidnrnenpauesneuceele Sotossccetpo deus ogiod foaled avn e Meson
inomaritcotceeiment esi incvi ee feroprende: Fil selon, ta
Tmipianuccciee, Satcammenicea Set lpuncertmar ae
tanner ode penne dg spt Grog fepheslo realised ql fe
Stmlpedtcsdcumenbreene Copibeasbenitteapitces. tamer linisncene snot a
ftps uncut manssbnate stimu fewit sues mane daggeds
Sinmedotonatee steve sme GGongleshcs ipo pur encour me
Sider selena om sowsche pete ogi uae dtp va
{ri osvbmtsaeqpearinche ler pede dimaificn,e eel senator dappeacone Wee
Sonasaans diene jar el ooge Dive Digan Fimponasen datggev ores ee
tedaftome inmodosngo tin someones tompmstaiene cnet events chcrsaeCOME FARE > Software
Vesecurtone della script Suquestultino della nesta vengono visuaizzate w- LE BASIL
argomentotoreremo pi. avantiDopo tele variabli del programma, le loro DEL LINGUAGGIO.
Guest duc plu torane deco. desnizont ead ce contegsno-Chs DFE CRIBTING
‘andi principale avi delesecuzione ha gi dimestichezza con alt ambient
ispettivamente in madalita ci debug cl sviluppo, anche soo il sempice Vir
fin modalita normale, seguiti da un sual Basic for Applications di Microsoft Come abbiamo detto, i Google Apps
‘menusateninacontenenteelencodelle Office noteracomelefunvieni debug Scripts servi javaSerpt Ala sh
funalon! insert nell sexpt clsponibil slanoabbastinzasemplice: teste al cost tip di questo Ings,
La iferenza tale cte moda non sip per esempio madifi- gio vanno perb aggiant git trumenti
|i di esecuzione (normale ‘aveilvalorediunavariabile del Google Web Toolkit, per realizare
debug) & crucial: in mo mentreVesecuzione®inter~ _glilementdelnterfcca utente una
Galita debug, fondamen. Tolla,eneppureimpostre corposnsetiec unsion di liberia ness
tale in sede di sviluppo, ambiente perchéentt in sare per“pakae” con glistument ele
quando Yesecurione Gel modalta debug al veri applicazioni di Gongle. In questa sete
programma sinterompe ‘arsidiuna precisa condi-noncilladiamo di pote esaurne argo
(aaecempio per un eroce) Zino ad esempio“blocca mento dello scrip delle Google Apps,
Vamnblented svuppononst esecuzione quando ls cella mavogliamoofiie una panorama sug
limita a segnatare i problems, Acontieneivalore I"). aspet principal de! linguaggio eslle
‘ma permette al progeammatore dl Quandos/lavorsin modal stand — diferenrefoodamental neiosvluppodi
vetfcarelostatodel sistema e,auspica- alone, fambiente di sviluppo si pre- routine chedebbane grare in autonomia,
bilmente,disspirequalesinitproblema Sentai moco identiso ma deveessere —aintemodi documento sot forms
‘ccorso Si possone impostarepunti di lancato direttamente dallnterfaceiadlapplicizione Web.
ierruzione, coe righe su eu Tesecur iGoogle Scripts (itips/scripisgogte. JavaScript éun linguaggto orienta gh
ione del programma (e in modaliti com) oda Google Dive. In particolare, oggetti con una sintasirelativamente
Gebug), doveafermars forzatamente: dalla pagina hipsi/drive google.com) semplice, drivata in parte da Java e
hasta ave cliccon mouse sul numer dezwny dre, facendo chesulpulsanteC. I codice Gas (Google Apps Script)
elaine corrspondentepercreameo Nuovo inalto.asinistra e aprendo poi contenutoallinterno di funzion, che
fliminarne uno. Quando programma i menu Alto, dovrebbe essere dispo-_vengono dichiarate con Ia sintass,
tin powse s pubriprendersexecuzio- — nibilela voceGoogle Apps Script che
he, nteromperi in mode defines 0 richiamaistantaneamente ambiente function roneFunsione
fetuaredcsiddettodebugpasso per di suiluppo. Se la voce non compare (anganants sella funztone) {
pesso,eseguendolesuccessivevghedi — bisogna fare cle sul pulsante Calega a
tdiceunaala volta per verfareil us elreayplicasiom, cercare Google Apps 17 ssteaion.
Ssodicontoll. Quando esecuzine in Script nella finestea che si apr e fare u
pst nel riquadet dela zona inferiore lic College,
‘CONTROLLARE L'ESECUZIONE
‘Quando csi trova nada debug. el programma
{in pasa (pun errre o per aver raggunto un
unto ointeruzione)Cambiente dlp presenta
‘lun pulsotin pl, che permettono dl sprenderee
Intercompere la fraione corente, od continuorne
esecuone una riga alla vata,
ILCONTENUTO DELLA MEMORIA
Ir modalta debug ia part Inferior dla fnetra viene occupata dlllanco dll varsblullzate rela fusione.
Per og variable @ vibe nome tip (che vee stabilite a runtime dlintrprete) el contenute attuale(@ COME FARE > Software
Log
(e616 1526 sais Ces Fog al avore senza name
[6-616 1836 sas GEST Fog lavreaenen nama,
1n6-6-16 1536 sean GEST] Poets SorzaconinPele_11u91020%4 Vileane
‘alk. Mena oh Samertha Ken Sioa
[noce-16 1526 52820 oer] Featyvak SoraacowinDDPele_11uglc2014. lean
fata Maina pn Samarina Kan Bipg
Ineae-te 152652831 G=sT|Peakywal SoraaGoniniDPele.11ugle20%4 Vilage
‘ensta Meina ph Sanarina Kish Spo
Ine ig ans eT] Peasy SarencaninoPem_1gt20"4 ape
lira pn Samaria Ken_Pib3.
‘Sante, Mota pm
Ise 1850520006 Posy Serencantbree_tb20'4 anc
free ie tes anas Gost] Poca SeraaConinDPete 2014 agp
‘ensia Moira pr Sanerina Kian Spo
In626-16 152652000 Get] Peetyra« SoreaconniDPele_11u9I02014 vileane
‘ast Meina oh Samariha Kein 2iog
[nege-16 152682830 c=sT]Fearyrak Sor2acowiniPeto_11ugI020%4. lean
[LLogger permette tracciere in modo slendoso acne infrmazioni relative
alkesecuzione del script Se necessero un log pi essere vsulizat dll nterne
deltabente svtuppe (come in figura). viato viemalo srt inn
ocument slvato nell storage d Drive aftura memeri
| trigger permetton dl schedule esacisione dele fnsion. cat drip stand alone
(cioe non tegat aun document o aun foto cao) un trigger permet fal aren
background, come in plecolo svat Web oxptato sul server d Google
Come in mol alte lnguaga,Vesceu
‘one di une funzione pu (ma nen &
‘bbligatorio)resttuire come risultato
tun valoe atravers il comand retin,
tenon &neceserio specifiare lipo di
questo valve. Anz piv in gonerte non
3 imal necessaro specifica neppure
tipi delle variably che van soltanto
ichinate:e po imterprete a stabilize
‘durante eseeuzione i tipo di cascuna
variable, in base a sao utiliza, Per
fare un esempio semplicissimo, una
funaione che elftti ls sommna di due
‘uimert spud servers cos
AC een (BL
vee=atbs
}
Per contollae Yesecuatone del cod
ce si postona usare tutte le principal
Slrutture previsteda JavaScript, sia per
esecuzione condizionat ee sia per
‘Vierazione (ce fore wile.
Inoltze si possono utilizar le istra-
lool try catch per gestire gl erto-
1, prospettiva che con gl script di
Google assume conaotati ben pil
{interessant che in altri ambient di
sviluppor nan bisogna dimentcare che
‘questo linguaggio ha a disposizione
Ik immense rsorse della piataforms
Google, con pochissime'righe dco
slice si pub inviare una email per se
‘alae unvanomalia oseivere tulte le
Informazioni relative allerrore in wn
ocumentosalvate nel lous ai Deve
La snippet seguente 8 un esempio di
tuna gestione deg ertori chest avvale
del supporto di Gmail servesoltanto
tana riga di codice
Instron
wut
Uaetrustont 8)
2 eaterced ¢
eitepe.
sencinat nioindirizzeservers ¥
Soe ee
[nstrustont
Lateral questo pozzo dicodic, per
chinanconoscegialestratture tye
2 questa: lo sriptesegue le Istruzioni
del blocco A, Poi tenta di esegire Te
istuzion'delibincca & Setuttow bene
Al termine del blocco B continua con i
bocca C. se invece nel blocco B viene
riscontrata una qualunque anomalia
esecuzione delblocco Us intertompe
vengono eseguite le righe speciiste
Aopa Fistrurione catch. In quest.a30,
nel Bloceo catch c' solo Pistruzione
Mail penal che permette i in
viareun meseaggio di posta altraverso
Gmail Questa funzione richiede te
pparamett:Vindirizo a cui lnviace i
mmessaggio,l oggettodella mail eil suo
content In questo casoilcontenuto®
Fatteibuto mesage dell evento e, ovve
ro In deserizione dell'evento errre,
tun campo di informazione compilato
diretamente dal istruzione calc.
Pr acquisine una buona padionanes
Ai Google Appe Script e quindi neces
sarlo mparare a conoscere le tutture
che permettono di interagine con Te
applicazioni Google. Alcune di queste
hanno senso solo allinterno di script
Container Bund, come le Farzins che
permetiono di leggereeseivere i dati
in undocomento. Gh sript egatia og
Alealelo, peresempo, inialano speso
on istazioni simi a quest
var msheet = Spreadsheet. ¥
getictivesheet
fetta menaall »
getoatcrange().getvaluesO$
La prim crea una variabile chiama-
ta mysito le astegna come valore
i foglo di caleoto corrente (o meglio
‘quello da cu To sept viene exegult),
{Es second crea una nuova variable,
chiamata myDat, cle assogna inter
‘allo di valor delle calle attualmenteCOME FARE > Software
east E18) ts
GLI SCRIPT
COME
Se ae aridispariCio
di esempio alcune delle potenzialita: m
ae pee ane oe we Come abblamo gih accennat,glistipt dispari
aeons peso aggungere nove vedi: pari
re ie ‘mo, rimangono visibili ta i menu di dispari
eae a del documento a cul é legato lo script. ps
Tanclae alcual semplict comand dispart
dispari
pari
dispari
eee, (atc
Peer ’
ae pee 1 dispat
jahosalanngent Alcune brevi note su questo fram-
Cereal meg ‘si collega all'interfaccia del documento se il
ene
E eee faretion erdgen() (
peer et vor ut = Document. 7
ne rt gtr
Peetrtottrs ucreatananuC ta 7
es : Personatizzato") adsTten Pri
REOOLSRAARYENN
reeset ieetcn ees
Trigger del progetto corrente
Esegui Eventi
(_checkDuplicates +) (Da fosiio di lavoro (Alfapertura 3
Le fui degl script contaler bound (avver legat aun documenta oa un fois cao) possono essere exegute anche
al verfiarse determinate cordon: per eserplolamedia del le cu fn rferimento ola sue semplie epertre.@ COME FARE > Software
Legger slog ntga st 16994
Per vedere il log dello script covtente
spud lchiamare la voce di men Log
rel ments Visilizen in alternative i
so contenuto pud essere lett da co
dice com la funzione LoggersetLost-e
pot wtlzzato in qualunque modo (per
tesempio srito nel corpo dina emai
{a inviare all arene),
Spendiame infine qualche parola sul
iodo in cui le fnzioni eli seiptven-
gona attivati nelle varie modalita di
Svilippo, Le fnzionicrente posson0
innanzitutto eseguie nll ambiente di
silippo: basa aprielo script, seleni-
nate it funaione asl ment a tendina
ella barra degli stramentie premere
4 pulsante di avvi. Esstono natural
mente modi pit pratic: per esempio
‘giungore una voce di menua un do-
‘mento aun appleazione (come ab.
biamo gis visto} oppure automatizzare
iT lancio di una fnione tramite un
teiger(parolainglese che signa gi
eto). Usiazare un tiger significa sta
bilire una condizione che facia satare
Vesecuztone dela funzione desideraa
Gli script possono per esempio esse
ze eseguith a intervalli regolar: per
crear un trigger di questo ipo basta
selezionare la voce Trigger del progetto
‘ortene nel mens Rsorse dell ambiente
dlisviluppo, poi aggiungere una voce
SlFetonco ~ ineialmente vuoto —
¢ impostare correttamente
‘Jetlapplicazione, inserendo in una
Cella la formula = NOMEFUNZIONEO.
Una particolare modalita di utiizzo
degli script 8 infine la distibuzione
sotto forma di componente agginnti-
vo per Google Sheets, Does © Forms.
Uncomponente aggiuntive pub avere
funaion! simill« quelle di uno sript
‘inserito nan docimento © pen-
plate” AGRE oo
siomatieroccoavis) © EQUNBOINETEE) bens! instalato aiateno
intervall di tempo tea
tunesecuzione eat,
Pergliscriptlegatiaun
sfocumento, la miedesi-
ima finest offre un’
ternativa ai trigger basati
sul tempo: | rigger legatl agli
{event del documento, Si pud qui
ali eseguire una funzione all apertura
elle, o nel momento in cult doce
‘mento viene modifieato, Non biog
dlimenticae,infne, che le Funzion’ de
fl script incerteallimterno dei fog
{i caleolo possono essere richlamate
fesatfamente come le normal fnzioni
Package Control
dalVapplicazione e dspo-
ribile in qualsiasi docu
‘mento, $i tata quindi di
script na in modal stand
alone e distebuit utilzzan
do il comando Distribuis! come
camponenteaggiuntice dal menu Pub
ies deltambiente di sviluppe. Per
realizzare questo tipo di serps doe
‘vero solo qualche plecla acortez23
Per esempioricondae che nei sript
fealizzati come add-on non esiste Io
Possibilita di agatungereinteri mens,
personalizzati, na solo nuove voc al
‘menu Component agent.
AMBIENTI DI SVILUPPO ALTERNATIVI
come cba vit, lameinte sve per gb crip
za eretorerte a browser, come tel oreater
Google Pe vere rcontra a prograraterte ale ro
bitin esto prdscun plugin chepermettane integra le
furzion i sviupo mecun deg arbient pu note aus
Ipc die Eclpse ide rutataferma emu
Unguoge, per cu Googie stessahs svuppatun plug dt
Interac con oogle As Ser (igre A). a det che
Uinegracane sotento parte: Elise pub essere voto come
semplke eto dcodeeper madfcore~me noncreareda zo
‘crpt standalone, oppure come ambiente dl suluppo e debug par
_applczion Web basats su Gas. La homepage del pluginsitro1a
‘lfetz hpe/developersgeoge com/ecipae contene tutte le
istion necessane per nstallare L componente Google.
Solo levemente pts complesso ek procedimento per installare
ilplug-in che consente alleitar di testo Sublime Text 2d
collegarsi a Orie eLavorare con gl script: aggunta cl questo
‘componente passa attraversa ll sstema i nstallzione Package
Control reperbeallindirzz0https//eackagecontro.o (figuraESEMPI PRATICI
Dopo aver raccontato cosa si pu fate
con gliscript del Gogle Apps. ¢ oa
‘etter finalmente mano alla tastier, Vi
proponiamo qualche exempio pr
fon cul srt i sicuro pid semplie ea
pire quali sinoa flsatia di finziona
ent deglsriptele real potencialih
fella tecnologia. Buon civertimenta!
1, FUNZIONIDI UTILTA,
IN GOOGLE SHEETS
[Uno dopi tli pit comunideplisript
delle Google Apps &ereae nuove fu
‘ian per un ogo cacola, Partie
on un esempio semplie per splegarela
‘inamica di questo tipo di scrpt
india i mo
Inserenda questo codice come sept
dit un foghio di calcolo, nelle celle
Gil fogio si pud subito utilizzare la
funaione Pay Dispal) Bis
cffettuare il slvataggio dello script
che adilferenza dei document non &
0, aulomatco. Lutilizea & identico alle
‘ormall formule det fogh
sinserisce in una cella espressione
eriDisparitc
istanteal poste della forma apparira
Ieisultato della funzione Pr esempio
H(A) eestituirs A valde
par se nella ella A1 ce il numero 4,
see numero 15, operatore
2 ulizzato nella riga di contolo,
slvisone tea miu
2. ARCHIVIARE LE VECCHIE
COME FARE > Software
{AL introdurteateun concet importa
i. Si tratta di una script stand alone
uind non logato aun documento 02
Un contonitore specific, «3 compone
Ai due furzionisArchivioE mel ©
‘mevulEsecusine) Iniziamo notanda
la stile distinzione trai nomi delle
due funatonsi ating bassa (under
score) lla ine det nome della second
la identifica come fusion di supports a
a}, « dopo qualche
tana fanzine principal (nel nostro caso
{ucla che archiva leemal)Lefunzioni
A supporto hanno Ia earateristic di
nom poter essere eseguite dretamente
ma sltanto chiamate dal interno di
tualtrafanzione
ve a far sche la prima funzione non
super templ dl esecuzione massiat
previstida Google. Visto che gli script
racitnumera
[EMAIL AUTOMATICAMENTE Birano di fatto sui server Google, ®
function PorsDizpart (nichumars) ( Fiat stabito un etto massima dl paca
17 (wiohimero #2== 8) Questo script serve a spostare nella pith di cingue minut di esecuztone
return ‘paris
chivio di Gmail tute Ie conversion 13
giunto quest limit, lo script viene
‘ales checontongonosole messaggi pil'vec- interrolto con un erzore di imeot
atin “aiepari?] chi di una setimana. Buna funzione Visto che lo seript di archiviazione
, pluttosto banal, che ci permetteperd_ delle email effettua una scansione di
console dl programma (“ichiamata con la vace Shaw Cancale
nol menu View) lo script che si tova alla pagina https://
pockagecontroionstellaton, Nella palate del program
Flehiamabil con la comtinsslone a tastCrt+Mowee trove
|Leomanco per egaiungere il plug-in. € Package Control: Instat.
Package (Figura), acu eve seguie [a seleione del nome.
del paechetto Gooate Apps Script (Figura). Unstallzione
parte Immediatamentee, una volta completata allfnterna
della console saranno present due nuov comendl Google
‘ops Script Authenticate e Google Apps Script Browse Projects
© [a hs:
Google
Go.
(figura). processo a autenticsaione, da lancare alo
al primo utilzz del plug-in, serve afornre a Sublime Text
le eredenzol i accesso al file del'utente au Google Drive.
‘Sublime Text copla neg appunti un indizzo Uri che, una volta
‘2perto ne browser, porta a una pagina di auterticazione di
Google. Dopo aver forrita Wl consenso al collegamento, Google
restitlsce alutente un codice (Figura ) da incollare nella
console dl Sublime Text. Terminata questa procedura sl potra
finalmenteutlizare ilcomando Google Apps: Browse Projects
per lavorare sul propr script@ COME FARE > Software
Function Archiviaénail() {
var unasettimana = 7 * 24 * 68 * 68 * 1609;
var threads = cnallApp.getinboxthreads()
var now = new Date);
for (var J = 0; 4 « threads. length; $++) {
AF (timeout secuzione_(now)) (
Logger log("Esecuione intersatts per tiveout”)s
breaks
$
Af (now - thneeds(4).getLasthesrageDate() > unaSetténana) |
‘threads|s].noveToArchive();
?
?
Function timeoutEsecuzione_(iniziotsecuzione) {
var cinguekinuti = 5 * 60 = 1000;
var now = new Bate();
return now.getTine() - intzio€secuztone.getTine() > cinquetiinuts;
?
[stato sponte anche altirrizzo htp//postebin cam/ENDTBBIEe sul Dvd vitae
Gmail - Archivia€mail
Fle Modiica Visualizea Esegui Pubbiea Rise Guia
<> BAO & & | pevemi 0
fw Colcoge Cade gs ‘acnuacrat
2 function srehiviaerallO {
4/7 Esecaxione autonatica una volta al forme
7 var threads ‘rai lApp grt TnboxThreads();
Svar aw = now bate
3) for (var = @5 § € thrends.lomaths $449 ¢
124 Crimauresseuione (rend) £
2 Erecuzione intarrotta par tinend
ae
Sel nome dela funtion termine con un trattno basso (underscore). emblente la Mees
come un comand dl support. che non sirarichamato drettamente dltente ma solo
altintero alr frzion. suo nome non compare, fate menu delle fureon
tuuta Ta casella della posta, abbiamo
aggiunto una routine di controll che
Interrompe Vesecuzione spontanes
mente quando s raggiungono cingue
sini, senza provosore error
Vediamo in dettaglio come sicomporta
ANeodice dela funalone ArchioiaE mall.
Innanritatto i dichiorano tre varibil
sou, unaSetimaa e threats.
Alla prima viene assegnato il yalore
attuale di data ora, alla seconda il
‘numero di millisecond (unit mi
surausata da Google Apps Scrip per
i caleoli tra date) che compongono
luna eetimana in ends infine viene
memorizzatoVelenco delle conversa
Zioni presenti nella inbox a Gmail
Loseript avis quind! bisogno delfau-
torizzarione ad accedere, in lettura
series, alls easel Gril eli
tent. Il successivo cielo for fa sl che
‘venganoesaminate, ana peruina, tutte
Te conversazioni nell inbox, facendo
lun cantronte tra il somento dele
‘euzione dello serpt (la variable now)
In data dell ultimo messaggio del
tread. Se la differenza (espeessa in
rillisecondi) supera il yalore della
variable wneSetinna, Vintero theead
‘viene spostato nell achivio di Gmnall
Dopo Ta funzione GmailApp gettn-
boxThreads(), wtiizzata in. proce
sdenza per oltenere un elenco delle
fomversazioni nella inbox, faeciamo
qquindi conoscenza con due altre
funzlont collegate al mondo Gmail:
setlestMessageDuted)che estitisce la
fata di ultimo dun netome ci mee
age. © moveToArchive(), che archivia
tno pit: messaggi
‘A ben vedere, anche la funzione di
supporto tincoutEsecuzione()s basa
suruncanronta tradate: quella atte
{la variabile now, definita allo stesso
modo dela variable no dela prima
funaione)e il parametr itioEcHsio-
ine, checontiene stants cui stata
Tancata la funzione principale. Anche
inguesto caso il valorede! timeout (I
variable cinguedinut) & expresso in
millisecond
3, SCARICARE FILE
INGOOGLE DRIVE
Presentiamo.ora un pezzetto di codce
chedev'essererchiamato da un’altra
funzione:downloadFle()faesattamen
te cio che si pua intuize, osiarecupe-
rare un file dal Web. Non lo seaticaLoseript salva fle altinterno duns
‘artelladiOrve,che deve essere
‘dentfesta dun code unvocn,
eos s pub itrovarein mod
serplicepuntando browser ala
‘carteladesiderata ecopiando Rt codice
ala bora degli,
pero su Ps locale, madiretamentenel
‘oud storage di Google Drive. La fan
one orenleedile. viene richiamata
fom due parametr:Vindirizo Url del
file da searicate © 11d della cartlla
«41 Drive in cul scaricarlo. ld dt una
cottella pug essere ricavato tramite
codice, oppure direttamente dan
terlaccia Web di Drive: basta apie la
Cartels copie parte finale ln
Sleizzo (che si presenta nella forma
Intpstrie googie com /frivefolders!
xmurmnetzrmy), coe quella presente
dopo Flim sash ().
[La prima aperazione compiuts, Ur
FetchApp fetch), & gia il download
SE)
COME FARE > Software
© dive Vette 9 Seied > Mace ane > @
==“ roel
=a 1 TB Comanicaziene to
vero e proprio. Se lo scaricamento va
a buon fine (ovwero se la risposta nel
protocollo Hup& Ia clasica 200 OK),
Acontensto dl file viene salvato nella
variabile fleBob, e poi scrtto nella
cartel identifiata dal parameteo fl.
erg atteaversala funcione Drie.
setFoierByfa
‘Altermine del procedimento viene cal:
cola la dimensione del file, ese tutto
‘va abuon fine viene nvinta una mail
function downloadFile_(fileunt, folderté) (
var nomerile = *"5
var dinensioniFile = 05
4 conferma allindirizzo del utente,
Lindirizzo-email viene reeuperato in
modo atomalico, atiraversolafunzlo
re Sesh getActiveser setE mal, €
itmessaggio viene inviataattraverso
la funsione, git vista in precedenza,
Mailapp. send mai
‘Questa furzione i presta bene ad aleu
ne pccole modifiche, Per esempiolo si
pub ingerie in uno seript legato aun
Alocumenta 0-9 un fogii di calolo,¢
var response = UclFetchapp.fetch(FiLeURL, (muteetpexceptions: true));
var rc = response.getResponsecode();
AF (re =» 200) (
var #ileblob - response. get@lod(
vvar folder = orivespp.getFoldertyZa(foldertd) ;
Sf (Folder != mull) (
var file ~ folder.creaters1e(F4ieBlob))
oneFile = file. getNane();
AimenstonSFile - File.getsize();
var enailaddress « session. getActivelser() .get™mail();
var subject = "Download conpletato”
var message = “File” + nonerile + ~
sucesso)”;
NotlAop.sendémail(enailéddress, subject, message);
(© + dimenstonirsie + * bytes) searicato con
|Lstatoe sponte ance altirriazo tp://pstebin com /vmgt TaN sul Dvd virtuale dl PC Professional(@ COME FARE > Software
farein modo che Fapplicazione ced
iotente a igtare Ue det fite in
tuna finesta di dialogo, anziché at-
tenderlo come parameteo di partenza
Per implementare questa variante
basta modifieae le prime righe della
funzlone introducendo aleune novith
nella funcione downloade:
funetion dounload ste (Yolderrs)
{
var ui = Spreadshes thon. ¥
ets
var risposta = 7
\ispronotC File da scaricore
‘Val Buttonget of. CAEEL
ecteaButton(:
‘etResponseTextOs
Wf Goutton = ui.Butten. ¥
wf
ggiuntivi Guida Google Maps |
SA. B-
rc rrteionse gto 206
Indicazioni stradali
In questo caso il download parte solo
seTtente prem i pulsante OK nella
finestea di dalogo.
Inoltelo script di partenza invia una
temail solamente in ca50.% download
terminato eon suscesso, $i potrebbe
‘agglungere qualche condizione alter-
nativa, per esempio trasformando il
codice in questo modo:
1 Gre == an
al
a1 (ox
4
t= math) {
eet
van su}
Dountoad eampletate"s
‘var message ¥
= File" noneFiles CY
1} dinenaioniFila + * bytes) ¥
Seorieato con successo) i
asleep. ¥
dina} enaithderess, subject,
sse0g8)
7
else ( // cortetia non
trovata
haitéep. ¥
‘gendEnat lanai iAcsressy 7
‘Dountead nan comstetatory
inasistente")
)
)
les { // arora HITE
etieop. ¥
sendemat(enatiAccressy ¥
*Dountoad ren conpletato, ¥
*attenzione! File non trovate")}
)
Cosi utente potrebbe ricevere em
diverse ne tre cas previ: ee down:
load &completato con success, se lo
scaricamento non € stato compictato
[perché non & stato trovato lle ose
{file non & stato salvato poche In
‘artella di destinazione nom esiste.
4, INDICAZIONI STRADALI
IN GOOGLE SHEETS
Questo seript, pensato per esone nse
Fito in wn fogli di caleolo, legge due
Indieizi (comtenutt nelle celle At e
BI del foglio corrente)e serive in un
nuovo fogio le indicazioni ai gids
prese da Maps, complete di distance
fepresse in metrl. Una versione pl
raffinata di questo script, utilizabile
in modo pi leesibilee con una serie
«4 controll sulla valiita det dati, ©
‘disponibile tra gi script di esempio
Fornitida Google sul suo sito dedicato
agli sviluppaton:.
{le funzioni incluse in questo script
sono tre, ma nessuna di queste deve
‘essere rlchiamatadiretamente dall
tente. Della prima, onOpen,abbiamo
8 pala in precedenea’ viene ici
mata automaticamente all apertura
‘del folio di calcolo, ha lo scope di
inserite un nuovo menu all interno
del spplicazione:il ment Google Maps
‘con il camando Indictsion! Strada,
collegato als furione Seriitndion
lowi-(). Questa funzione laizia con
la lettara delle celle A1-B1 del foglio
Ls fundone onopen( viene
laneitaautometicamente
‘Aopertura del document
Tutte fe modifiche sono state si Al suointerna si efetuano qu
tutte le operanon che serveno
fal) crireeemretentinne
Lavoro, partie dalla erezione
(eventual vol mena
perconatzzateCOME FARE > Software
covrent, neu cerca dus indice che
Uae ‘engono copit ll'inteno dele va
Pabilorgine dinaone Quand s
rouanaorntit Tavora com fot dl calcolo, la letra
del contenato nao pi celle passa
perlefonzion gotRange), che Went
fica un gruppo di una o pit celle, €
_gerValuest), che legge il valore conte
var spreadsheet = Sprendseetagp.gettct ive
var mentee = ((name: ‘Enficsesont stradsi", funetdontoe
ersvsdieaziens"}];
sprensshet. aarana( ‘GoogLe Wags", menuTben) ata athe ee vara
, fcontengono | dati necessat, lo seript
fanction serivitudicariont_() richiama la seconda funzione, cuore
Var spreadsheet » Spreadsheetapp.getéctive); ello script stesso: ehenuticacion! 0,
the sieolega a Google Maps restita
sce come output un vettoe contenente
leindicazionistradali detaglite, che
comprendono la lstanza ia una tap
var mysheet = spreadsheet. getactivesteet();
var row = aysheetgctRangat3181");
ar rowaluse = roa, getvnues();
var origine = rowalues(2();, pa eTaltrae tail punto di orgine «
var destinine = rowalves(@][3]; {quello i destinarione,
46 (onigne || saestinantone) (
Srowserasgox|‘Eevore", “Inar422i ren trovti’, deauser- buttons. 08) Comes pus notareilcollegamentoa
aie Google Maps ¢ mit semplice nella
prati eeichtede non pla di quattro
Fighe di codices crea un oggett di
tipo DirecionFinder (a cui viene indi
cate di utdizzare Is lingua italiana per
,
Be ond eed eee enero ep ea seer eee
ae nonefoglio = ‘Todicaniont ot gulds's
var foglloadleaziont = spreadsheet. tnsertshet(oneFogllo, spreadsheet Te ndicazionstadall, si impostano
gethursnets();, i puntidi partenzae activo e infine si
var titolofoglio = uetnittes forwatsteirg(‘Ineieazions of gua da 26 2 x8 Impartisce il comando get Directions.
oritine, destinartone): Sari Maps stesso a occupars di tutto
‘Tlavoro distro le quite (individuate
Te locale) sulla carina, selezionaze i
var headers ~ ({titotoFoghio, "], (Tappa, "oSstanza'}}5 percorso miglloree cost via) per pol
var nuovegne = (15 Festituireirsultti cercat.
for (var i = 8; 4 ¢ indicazindsroutes(@) lgs{@].stepsolenath; is») { {Una volta etenuto elenco delle ind
var passo = indlcaciont.rovtes(@} 2ees(€]-stesi ts fazioni stradai st itorna al punto in
cul si eta Iascats Ia prima fenzione
fon resta che aggiungere un nuova
foglio di caleoloe srivere al suo in
temo iga dopo iga, il cantenuto del
var istration. = passo.ntnl sstructions.repace(/
Software
function ealva6nrsl() |
var etichetta = Gnatlépp.getuser
for (van A= 9) 4.6 threads. tength) £08) (
var messaggd ~ threads(1).get¥essoges();
var messagzio = nessagai (0
var subject = messageio.getsubject(
for(var § = 4 5 < messagai-tength; 3-)(
body += nessagei[j]-eetBody()5
var messaggtontal = Detveagp.creatersia(subjact + "ne
var htalid = messaggtotitel gettd()
var messagetordf ~ nessaggtoktml.gette(‘spplication/pat”)s
Drvenpp.createFie(maseagaiord)
Drives. eetFitesyi6{ntalId) .setTrashed( true
cctichetta.renoveFronthread(threads(1),
‘stata dante anche stindrzzo pastebin com/PAMRuHBey
(21 Ovd vale PC Professional.
[meer Ton WMtoneinearaneggnaraar
none Cems saree can nea
Lo seriptLavora su tut messogq dalla Inbox Gall con una specifica etichtta,
Por aggungere ur eticheta al messaggi in arrive spud aire marualmente oppure
' possono usre fr, access dalle impostanon del serv,
‘init Io funzione allaegs Ja prima
coloana, che contiene i testo dell in
dicszioni,eblocca le prime duerighe,
in cui poi serve le intestazioni util per
In leuura des dat
5, SALVARE LE EMAIL
‘SU GOOGLE DRIVE COME POF
Sitratta duno sevipe stand alone che
‘segue easenzialmente tre operazion
ffettua ana scansione della posta in
Srrivodi Gmailals ricerca di messaga
‘atatletizzati do un stichett specifica
{ell esempio Vetichetta& de salou),
‘ontengono almeno un messaggio
contrassegnata in documents Pat ©
infine salva nel cloud, alnterno dt
una eartella dell account personale di
Google Drive
[primi due comand indivicuana le
sonvetsazioni che contengono mes
{gion eicheta desiderata ich.
ta po essere
fio soltamente alla eezi
ppud anche definirea piacimento dire
thmente nell interfaces ai mail ga
messaggi archiviate © quali no. Per
fssurdo si polrebbe anche etichetiare
‘omedasleore(equind memorizzare
Jn Drive) tutta la posta in areivo. IL
stuccessivo eelo fer (anzi, la cappia
di cick for nidifien) analizano tt
{ messaggi in ognuna delle conver-
sazioniindividuate crea dapprima
una versione Hem! del testo per og
thread: questo avviene attraverso i
“App-creteFtt), che ae
‘etta come parameti nome del ile,
contenute da seivere al suo interno
fil suo content-type In questo caso
rispettivamente subject + “hm (omsia
Toggetto delle email) body (il conte
auto di tut imeseagei) e text/itnl
Testo Html a utilizzato in realt solo
comande Dri
‘come passaggiointermedio: na volta
‘reat fle ls pud convert al volo
in Pa com il comando mescaggia tn.
{2tdst application a, por poi slvarlo
tn Google Drive. Leulfime opersziontCOME FARE > Software
ely
function esportatventi
var eigneender = 2)
var calencaris : cow
var Fogle = Spreadsheet. gethctiveseet
var range + frlio.gtoatotnge
effettuan infine una puliziadel'an- var ati = range. getalues
Diente lavoro i file Html, ormat var calendor » Caendorsop.tetcalendrsyicalenartd
postato nel cetino, e dai messaggi atte noun eGR
in Gmal viene eancellata Yetienetta i a
cscerione dello scrip le discussion van rig = ans
ait elaborate non vengano salva dl var data = new Date(eis8
Fuova (questo per accadea comungue var titolo = rial
fe nel fratempo sono arrival uot
messaggi eticettt) var tunis = nev bate(rigal2
Come ft lt script anche questo uit eeeatolacta greats
Erigorabilein var mo. Spot ‘itis ar ase ae
bero pr esempio inserite sequence di rae
{sieuzoniperla gestione deh errr, 0 eee ay
persalvare anche gi eventalislegat
present nel messaggi di posta indivt var thine « ne ote (ga
Sua Il ingngaio d scripting off rine setoate(eataget0nte()
{nfatt it comando got Attachments) ‘ine. setnorth (data getorth
che individu fle allegati aun mes ‘ine. setear (data gees
Sagglo presente nllachivio di Gmail
permette di salvar in un vettore, ee
pronti per essere scritt poi su Drive Soa
6. ESPORTARE EVENTI ‘ry (var evento = calendarstevetserestyl( 46): ) cateh(e
DA SHEETS A CALENDAR
Questo scrip spond a unsigensa sar univer -ealetarcrestasvestita, ens, tine
pratica di molt went anchese Google reeattonsumge) great
{enon solo Google) offre un elena
rho molto ricco i fnaioni,spese0 s.
fintace per annotare gli impegnt in
altro modo, Magarin un foglio di
‘alcolo, ripromeltendosi po di co-
Pare, un gioeno com calma, tutto nel
falendario, Loscript che presentiama
occupa esattamente di questa opers
settitle titolo
setlocatio( 40g)
Open) che a
{ogli la voce di mens corrspondents
alla Funzione principale, le script s
function onopn
‘aspetta che il folio di calle contenga eee ean
‘dati organizzati seguendo una una
ormattazione press var vociNens = [{ ane : "Esporta event", functlomane : Tsp
Idati da riportare nal cslendario devo- foglie. atten Google Centar", velnen);
no essere cine criti all intern delle
prime cinguecolonne: data, tel, ora
{i inicio, ora di fine, logo in ul si gate &iaponde anche alters Mtp:/pastebincam/LnC2aMNg
svolge evento, Lasestacolonaaviene Seat pwd tale a Pe Professionals
tuilizzata dalle sript per memorizzare(@ COME FARE > Software
Prova 01 Inserimenro bat oa SHeeT a CaLenoar
Loseript proved che atslan insert in mado preciso alinterna del fog calla
Un consgto:rierdatew et impostae il formato dele colenne che contengono date era.
Detiagt Test
LINK UTILI
sete incuros abbestanza sul mando del Google
\ ] ‘Apps Serpe volete approfondre Cargomento?
eco alc lin acu parte
> huts: developers google com/opps-ceriptfoverview
ftps: developers google com/opps-seript/ortcles
hes: /developers google com/opps-ceip/referonce
Sona tr glen fordamentalnel sto Google dacicatoagl
Sviuppatert La prima ofre una pansramica generale sugl sept,
con numeros! eserpl dl approfandimento del var argoment
Laseconds forse ta pi ute) & une serie ci esempietutoia
per prendere confdenza con I Unguaggo ele sue poteallta.
Lltimsinvece@ une gud completa also delle varie
appeal allinterno del script, con ladescralone completa
{tutte le unzion’ spon
Per rtrovare dn Calendar bloga art a sua finestradimpostacon:
la atringealfrumeria che compane id trove vers fondo della pagina
Vid detVevento, La compilazione dt
questo campo fa si che lo script non
‘Yada a reincerite nel calendario events
{creat (riconoscibil propo dad
818 assegnato) ma s limit acl agaior=
‘hare i dai. Ovviamente a posizione
de’ dat all interno del foo pub esse
re modificata, andando ad apie sug
Indic del ettoe rige]-in eu loseript
memorlzza dati contenutl nee varie
colonne di ogni riga
Gialt dat willzesti dalla Funzione
sono il numero di eighe da conside-
rae come intestazion ello script i
esempio il valore 2) eld del calen
‘fasion cai andare aseivere, 1d del
falendatio puo essere recuperate, con
tun po" di dtfcots,naviganda tra le
Inmpostazionl di Google Colendar (si
veda, questo proposite, illestrario-
ne quia fiance)
elemento aa eu vogliamo concentra-
repersan stant lanostraatenzione
Alparticolare uso del costratto iy or
evento = calendar getEventSeiesByld0);
eat (e[ Questa operazione serve
a verficare che I'd dellevento scit=
to nel foglio dl calcolo — se presente
“sia in effetti esistente,E se non &
‘un I valida alors Ia fnzione deve
1 Dprovvedere a creare Vevento ex nave,
Tiutitizzoditrye calc serve quindl ia
questo casoesclusivamentead evitare
‘hell programma ada in esrore sa:
pol a successiva istration if even
4) da leggere come "se la variable
vento non contiene dati valid” - a
deciderecome omportarsise evento
fsiste oppure no, 3
ve =mErt
hp fg com/google/google-oppe-script-somples
‘Asi esempiuffical lascat da Google drettamente sy GitHub
\Uforoso portale deicato alla memertzzazone e alla condvisione
Aiprogett software
> wurde ergnerne/google-serpts/26261/
Una ist dseript l esempi, acu dequalimetocomplesse
ingraoaifa comnprandere le plene poteraalta cel! ambiente
seluppo delle Google haps
* wunucodecodemy.com
Da ltime unlink non esttamente legato a mondo deg srpt
‘Google, me aun cesuol element costitutv:Codehcademy€
Uucottina rsors8 online perimparare 3 programmmarein val
ingest cut avaserpt. lac coroscenza dbase ¢ un requsit
fondarentae per ruscre anche sla acomprendere lsat che
‘ovate in quese gine che potete recuperare online