Technology Experience
.NET World

Fare lo short di un url usando le Google API

Sviluppando applicazioni Metro per Windows 8, una delle funzionalità più interessanti – non solo dal punto di vista developer ma anche utente – è la possibilità di fare lo share di un qualsiasi contenuto usando una delle app già installate nel sistema. In pratica per un utente il tutto si riassume in pochi passi, ovvero:

  • vedo un contenuto interessante all’interno di un’app (una foto, un link, un articolo, un punteggio in un videogioco, il prezzo di un articolo, un film da vedere al cinema, qualsiasi cosa) e decido di condividerla con qualcuno
  • l’espressione “condividerla con qualcuno” è volutamente generica, perchè vuol dire un sacco di cose (molte delle quali ancora da intuire, probabilmente): vuol dire poter mandare una mail, twittare, postarla sulla propria pagina Facebook, postare una foto su PInteret, marcare un link tra quelli preferiti in Diio, aggiungere una foto in un photoset di Flickr, etc. etc.
  • per farlo, l’utente non deve far altro che richiamare lo charm di Share di Windows 8 premendo Win + H (oppure Win + C e poi cliccare su Share). Se l’app che state usando prevede questa funzionalità, Windows 8 mostrerà l’elenco di app installate nel sistema che sono predisposte a condividere l’informazione

Nell’app Windows 8 che sto sviluppando, pviCommunity, è possibile per esempio fare lo share di fotografie scattate durante i voli virtuali di Piloti Virtuali Italiani. Ogni fotografia è identificata da un url ben preciso, quindi…mi sono detto…perchè non permette di twittare dalla mia app quanto sia bella una certa foto. Sappiamo tutti che i tweet hanno una lunghezza massima di 140 caratteri. L’url di una fotografia può essere una cosa tipo questa:

http://service.vivendobyte.net/FlightLogs/7600/2012-7-6_11-47-26-546.jpg

E’ una fotografia reale, quindi se cliccate sul link potete tranquillamente guardarla.
Sorriso

La domanda è la seguente: come è possibile fare lo short di questo url, per esempio usando le API di Google. Il primo passo è quello di registrarsi qui per ottenere una apikey da utilizzare direttamente nel vostro codice C#. Fatto questo, utilizzate questa classe per fare tutto il resto:

public static class GoogleUrlShortnerApi
    {
        private const string key = "api_key";
 
        public static string Shorten(string url)
        {
            string post = "{"longUrl": "" + url + ""}";
            string shortUrl = url;
 
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + key);
            try
            {
                request.Method = "POST";
                request.ContentType = "application/json";
 
                using (Stream requestStream = request.GetRequestStreamAsync().Result)
                {
                    byte[] postBuffer = System.Text.Encoding.UTF8.GetBytes(post);
                    requestStream.Write(postBuffer, 0, postBuffer.Length);
                }
 
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponseAsync().Result)
                {
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        using (StreamReader responseReader = new StreamReader(responseStream))
                        {
                            string json = responseReader.ReadToEnd();
                            shortUrl = Regex.Match(json, @"""id"": ?""(?<id>.+)""").Groups["id"].Value;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // if Google's URL Shortner is down...
                System.Diagnostics.Debug.WriteLine(ex.Message);
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);
            }
 
            return shortUrl;
        }
    }

 

Il codice è pensato per girare all’interno di un’app Windows 8 Metro-style, chiaramente.

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.