<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>diploD &#187; google apps</title>
	<atom:link href="http://www.diplod.it/tag/google-apps/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diplod.it</link>
	<description>by Davide Del Monte</description>
	<lastBuildDate>Fri, 13 Feb 2015 14:26:10 +0000</lastBuildDate>
	<language>it-IT</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Creare un web service con Google App Script. E magari leggere uno spreadsheet..</title>
		<link>http://www.diplod.it/2015/02/13/creare-un-web-service-con-google-app-script-leggere-spreadsheet/</link>
		<comments>http://www.diplod.it/2015/02/13/creare-un-web-service-con-google-app-script-leggere-spreadsheet/#comments</comments>
		<pubDate>Fri, 13 Feb 2015 14:26:10 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Ajax e Javascript]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[google apps]]></category>
		<category><![CDATA[Google Apps Script]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[spreadsheet]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1491</guid>
		<description><![CDATA[Sono lontani i tempi per cui se dovevi pubblicare un web service di test eri costretto tribolare in qualche ambiente di sviluppo, per poi caricare il tutto via ftp su un web server e testare il tuo servizio. Da qualche tempo ormai possiamo fare tutto da browser. Con Google Apps Script il concetto è semplice, basta accedere a Drive e scrivere qualche riga di codice javascript.]]></description>
				<content:encoded><![CDATA[<p>Sono lontani i tempi per cui se dovevi pubblicare un web service di test eri costretto tribolare in qualche ambiente di sviluppo, per poi caricare il tutto via ftp su un web server e testare il tuo servizio. Da qualche tempo ormai possiamo fare tutto da browser.</p>
<p>Con <strong>Google Apps Script</strong> il concetto è semplice, bisogna accedere a <strong>Drive</strong> e creare un nuovo documento. Andare su <em>Altro</em> e poi <em>Collega altre applicazioni</em>.</p>
<p>Filtrando tra quelle di Google, dobbiamo aggiungere<em> Google Apps Script</em>.</p>
<p><span id="more-1491"></span></p>
<p><a href="http://www.diplod.it/wp-content/uploads/2015/02/script.png"><img class="alignnone size-full wp-image-1494" src="http://www.diplod.it/wp-content/uploads/2015/02/script.png" alt="script" width="733" height="497" /></a></p>
<p>Ora tra i documenti disponibili abbiamo anche <em>Google Apps Script</em>.</p>
<p>Creiamo quindi un nuovo documento script.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2015/02/menu.png"><img class="alignnone size-full wp-image-1495" src="http://www.diplod.it/wp-content/uploads/2015/02/menu.png" alt="menu" width="535" height="447" /></a></p>
<p>&nbsp;</p>
<p>Si aprirà un documento dove possiamo scrivere codice javascript.</p>
<p>Come si legge nella <a title="Content Service" href="https://developers.google.com/apps-script/guides/content" target="_blank">documentazione</a>:</p>
<blockquote><p>Quando uno script viene pubblicato come una web app , la funzioni speciali di callback doGet( ) e doPost( ) vengono invocate quando viene effettuata una richiesta per l&#8217;URL dello script . Invece di restituire un oggetto dell&#8217;interfaccia utente creato con l&#8217;UI Service o l&#8217;HTML Service, il Content Service può essere utilizzato per restituire contenuto testuale crudo. Questo consente di scrivere script che agiscono come &#8220;servizi&#8221; , rispondendo alle richieste GET e POST e servono dati di vario tipo MIME.</p></blockquote>
<p>&nbsp;</p>
<p>Possiamo quindi costruire il nostro servizio web, scrivendo ad esempio queste poche righe di codice:</p>
<p><code>function doGet(){<br />
returnContentService.createTextOutput('Hello, world!');}</code></p>
<p>Di fatto abbiamo realizzato un servizio che risponde a una chiamata GET scrivendo &#8220;Hello, world!&#8221;.</p>
<p>Ora siamo pronti per pubblicarlo, per capire come funziona la pubblicazione. Poi potremmo fare qualcosa di più utile, come ad esempio rispondere con un JSON contenente qualche dato elaborato a partire da un parametro passato nella chiamata.</p>
<p>Le istruzioni per la pubblicazione sono riportate <a title="pubblicare web app GAS" href="https://developers.google.com/apps-script/guides/web#deploying_a_script_as_a_web_app" target="_blank">qui</a>, ma di fatto è sufficiente andare da menu <em>Pubblica </em>&gt; <em>Distribuisci come applicazione web..</em> e vedremo apparire questa finestra. Dopo aver salvato la versione del progetto, ci verrà chiesto come pubblicare la nostra applicazione.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2015/02/gas1.png"><img class="alignnone size-full wp-image-1496" src="http://www.diplod.it/wp-content/uploads/2015/02/gas1.png" alt="gas" width="381" height="297" /></a></p>
<p><em><strong>Esegui applicazione come</strong></em>: stabilisce qual’è l’utente che esegue lo script. Se scegliamo di farlo eseguire dall’utente che accede, quest&#8217;ultimo dovrà approvare l’esecuzione dello script prima di poterlo lanciare, se invece si sceglie di farlo eseguire come se stessi, l’utente sviluppatore dovrà approvare lo script la prima volta, poi chiunque accede potrà lanciarlo senza doverlo approvare. Con questa seconda opzione sarà quindi possibile distribuire il web service che stiamo creando anche a utenti anonimi (non loggati in Google).</p>
<p><strong>Chi accede all’applicazione</strong>: abbiamo diversi gradi, possiamo scegliere di tenere il servizio privato, oppure pubblico per utenti loggati in google o addirittura per qualsiasi utente, e di conseguenza anche qualsiasi applicazione di terzi.</p>
<p>Di fatto ora possiamo chiamare da browser l&#8217;url che Google ci restituisce dopo la pubblicazione, per vedere apparire il nostro &#8220;Hello, world!&#8221;.</p>
<p>Vediamo come fare qualcosa di più evoluto, ad esempio un servizio che prende in pasto un numero e restituisce un JSON con scritto se è pari o dispari.</p>
<p>Scriviamo questo codice:</p>
<p><code>function doGet(request) {<br />
var number = request.parameter.number;<br />
if (number % 2 == 0) { var type = "pari"; } else { var type = "dispari"; }<br />
var result = {<br />
numero: number,<br />
tipologia: type,<br />
};<br />
return ContentService.createTextOutput(JSON.stringify(result))<br />
.setMimeType(ContentService.MimeType.JSON);<br />
}</code></p>
<p>Abbiamo aggiunto l&#8217;oggetto request tra i parametri della funzione doGet(), ci salviamo il parametro &#8220;number&#8221; in una variabile e calcoliamo se è pari o dispari. Poi scriviamo tutto nell&#8217;oggetto result, restituendolo come JSON.</p>
<p>Dovremo salvare una nuova versione dello script, andando su <em>File</em> &gt; <em>Gestisci Versioni..</em> e poi tornare a pubblicare lo script in questa nuova versione. Se all&#8217;url ora aggiungiamo la stringa ?number=42, otterremo questo risultato, chiamandolo dal browser:</p>
<pre style="color: #000000;">{"numero":"42","tipologia":"pari"}</pre>
<p>Di fatto abbiamo realizzato un <strong>web service</strong> o lo abbiamo reso pubblico in un attimo, il tutto <strong>senza mai lasciare il nostro browser</strong>.</p>
<p>Se poi volessimo spingerci oltre, potremmo addirittura anche andare a leggere un foglio spreadsheet e restituire i valori delle celle che contiene. Pensiamo a quante mirabolanti applicazioni potremmo costruire se avessimo una infrastruttura basata sulle Google Apps for Enterprise, potremmo ad esempio costruire web service che pubblicano i dati di un foglio condiviso, dove più utenti di una stessa azienda collaborano alla definizione di dati che poi vengono distribuiti ad applicazioni terze.</p>
<p>E per restituire le prime 9 celle di un foglio chiamato &#8220;Foglio1&#8243; sarebbe sufficiente un pezzo di codice così:</p>
<p><code>function doGet(request) {<br />
var key = request.parameter.key;<br />
if (key == "<em>chiave_di_autenticazione</em>") {<br />
var ss = SpreadsheetApp.openById(<em>id_del_documento</em>);<br />
var values = ss.getSheetByName("Foglio1").getRange(1,1,3,3).getValues();<br />
return ContentService.createTextOutput(values);<br />
} else {<br />
return ContentService.createTextOutput("Invalid Key");<br />
}<br />
}</code></p>
<p>Bello vero? :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2015/02/13/creare-un-web-service-con-google-app-script-leggere-spreadsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google developer day, after.</title>
		<link>http://www.diplod.it/2008/11/08/google-developer-day-after/</link>
		<comments>http://www.diplod.it/2008/11/08/google-developer-day-after/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 05:03:13 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[conferenza]]></category>
		<category><![CDATA[developer day]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[google apps]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=706</guid>
		<description><![CDATA[Google Developer Day: interessante ma poco italiano. Google è molto forte nel mercato consumer, ma ancora non ha un'offerta appetitosa per il settore enterprise. Google Apps necessita di strumenti per la gestione documentale e il project management.]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.diplod.it/wp-content/uploads/2008/11/immag031.jpg"><img class="alignnone size-medium wp-image-707 aligncenter" title="Google Developer Day" src="http://www.diplod.it/wp-content/uploads/2008/11/immag031-240x300.jpg" alt="" width="240" height="300" /></a></p>
<p>Sono andato al <a title="google developer day 2008" href="http://code.google.com/intl/it/events/developerday/2008/home.html" target="_blank">Developer Day 2008</a> di Google, con qualche giorno di ritardo eccomi a buttar giù due righe per farne il resoconto. <strong>Essere ospiti di Google è meraviglioso</strong>, in un <a title="nhow hotel milano" href="http://www.nh-hotels.it/nh/it/hotels/italia/milano/nhow-milano.html" target="_blank">albergo</a> dall&#8217;atmosfera frizzante, tra cibo e gadget il trattamento è degno di una <a title="sharepoint conference" href="http://www.diplod.it/2008/10/09/microsoft-sharepoint-magic-quadrant/" target="_blank">conferenza da 600 euro</a>. Non sono riuscito a seguire tutto ciò che mi interessava perchè sono arrivato tardi e buona parte delle sessioni era già piena (ma le prenotazioni via web no?), comunque ho sentito parlare di <a title="Open Social" href="http://code.google.com/apis/opensocial/" target="_blank">Open Social</a>, delle <a title="Google Data API" href="http://code.google.com/intl/it/apis/gdata/" target="_blank">Google Data API</a> e del <a title="Google web toolkit" href="http://code.google.com/webtoolkit/" target="_blank">Google Web Toolkit</a>. Tutte tecnologie che meriterebbero di essere studiate, ma il tempo è quel che è.. finchè non c&#8217;è l&#8217;esigenza si tengono gli appunti nel cassetto.</p>
<p><strong>L&#8217;impressione generale è di aver assistito a una cosa poco italiana</strong>, gli speaker erano per la maggior parte americani e le sessioni si tenevano in lingua inglese: fin qui poco male, se non per il fatto che mancavano completamente esempi concreti e casi studio su realizzazioni nostrane.</p>
<p><strong>Ero andato principalmente per capire quali fossero i prodotti e le proposte che Google fa nei confronti del mercato aziendale</strong>. Big G è fortissima nell&#8217;offerta all&#8217;utenza consumer, un po&#8217; meno presente nel settore enterprise.</p>
<p><span id="more-706"></span></p>
<p>In passato mi è capitato di valutare i servizi che Google mette a disposizione, più o menu gratuitamente, per le imprese. Ero alle prese con un progetto di intranet aziendale. Chiunque abbia un account Google ha avuto a che fare con GMail, Calendar, Docs e compagnia bella. E&#8217; possibile acquistare tutti questi servizi anche sul proprio dominio: utilizzare GMail su un indirizzo del tipo info@diplod.it e offrire ai propri utenti/dipendenti l&#8217;home page di Google personalizzabile, con tanto di gadget e Google Talk.</p>
<p>Nello specifico, per ciascun utente Google mette a disposizione servizi come:</p>
<p>-Home page personalizzata: si possono personalizzare i colori e il logo, rendendoli conformi allo stile aziendale. Successivamente ogni utente potrà scegliere quali elementi andranno a comporre la propria home page</p>
<p>-GMail: si può utilizzare il funzionale e pratico servizio di email sulle caselle del proprio dominio</p>
<p>-Calendar: il calendario di Google, con utili funzioni per la condivisione e la pubblicazione di eventi e impegni</p>
<p>-Google Docs: documenti di testo, fogli di calcolo, presentazioni. I documenti di Office vanno on-line, in una logica di condivisione e lavoro di gruppo.</p>
<p>-Google Pages: per pubblicare pagine html, servizio rivolto all&#8217;utenza senza alcuna conoscenza di HTML.</p>
<p>-Google Talk: il servizio di messaggeria istantanea di Google. Installando un software simile a skype è possibile chattare ed effettuare chiamate voce con altri colleghi di lavoro. L&#8217;amministratore può decidere se restringere il servizio solo per messaggi interni tra dipendenti oppure se lasciarlo aperto a qualsiasi utente google, anche esterno all&#8217;organizzazione.</p>
<p>All&#8217;epoca feci qualche prova attivando un account per il dominio lab.diplod.it e devo ammettere che rimasi positivamente impressionato. <strong>Non si tratta certo della suite più indicata per realizzare un portale interno nella sua concezione classica</strong>: niente CMS, niente aree riservate o profilazione degli utenti, niente news, forum o wiki. Se c&#8217;è bisogno di questi servizi è d&#8217;obbligo appoggiarsi a piattaforme esterne, da richiamare magari grazie ai feed RSS all&#8217;interno di un gadget dell&#8217;home page.</p>
<p>Cambia la filosofia: <strong>solo una serie di servizi pratici e funzionali, per dotare azienda e dipendenti di strumenti. Sarà poi grazie alla buona volontà dei singoli che si potranno sfruttare al meglio.</strong> Inutile dire che la <strong>cultura aziendale</strong> in questo caso gioca un ruolo fondamentale: è necessaria una fase di &#8220;scolarizzazione&#8221; per far capire all&#8217;utilizzatore finale l&#8217;effettiva innovazione.</p>
<p><strong>Tutte queste cose si pagano?</strong> Esistono due modalità, una gratuita l&#8217;altra a pagamento: 40 euro all&#8217;anno per ogni utente. E&#8217; un costo decisamente sostenibile, che permette di avere il sistema di single sign-on e più spazio per l&#8217;archiviazione della posta elettronica.</p>
<p><strong>Ma al di là della posta, tutto il resto sono giocattoli.</strong> Molto evoluti, ma giocattoli. L&#8217;impressione è che non ci sia ancora, da parte di Google, un&#8217;attenzione notevole nei confronti del mondo enterprise: <strong>quello che manca è un sistema di archiviazione documentale</strong> ordinato e funzionale, che è spesso il centro su cui si basano molti progetti intranet. Quando oltre alla gestione della documentazione viva (quella su cui la gente lavora quotidianamente) ci sarà una strutturata gestione della documentazione statica e magari un accurato <strong>sistemino di gestione progetti</strong>, allora questi giocattoli potrebbero prendere il volo..</p>
<p>Staremo a vedere.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2008/11/08/google-developer-day-after/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
