Technology Experience
.NET World

[Flickr.1] Creare una nostra applicazione per accedere a Flickr

Introduzione
In un mio post precedente ho accennato al fatto che possiamo scrivere codice .NET capace di sfruttare le API esposte da Flickr per fare tutto quello che possiamo attraverso il sito Web stesso. Vale a dire un sacco di cose: ricercare foto ed utenti secondo diversi criteri (tag, nome, data, etc.), uploadare nuove foto, creare nuovi set, geotaggare le foto già uploadate, ottenere la lista dei blog hostati da flickr.com, ottenere le informazioni EXIF di ciascuna foto e così via. Davvero tanta bella roba, che apre le porte a tutti gli sviluppatori che possono creare applicazioni alternative.

Questa pagina elenca le third party apps più diffuse. Quella che ho ritenuto obbligatoria è quella che permette l’upload delle foto in modo molto più efficace rispetto a quanto è possibile fare attraverso il sito Web. Con il sito infatti appare un modulo molto scarno, che permette di uploadare fino ad un massimo di 8 foto alla volta, taggandole ed assegnando un certo livello di protezione (privato o pubblico). Non potete creare nuovi set, dovete prima farlo a mano e poi assegnare le foto. Un incubo. Ed in più, c’è limite delle 8 fotografie. Con questo tool (esiste sia per Windows che per Mac OS X) invece tutti questi limiti vengono spazzati via: trascinate da una vostra cartella tutte le foto che volete, dite di creare un nuovo set e date tutti i tag che volete. E’ sufficiente cliccare su Finish per cominciare il processo di upload.

Come sviluppare un’app tutta vostra
La stessa cosa potete farla voi. Potete sviluppare utility che si interfacciano con Flickr per fare tutto quello che volete. Se siete sviluppatori seri e volete sviluppare una desktop application, leggete questa pagina per avere un’infarinatura su quello che dovete fare. La morale è che per fare qualsiasi cosa, dovete innanzitutto autenticarvi nei confronti di Flickr: la vostra applicazione deve avere il consenso per poter accedere alle API. Questo implica che vi dovete registrare qua per ottenere una api key, che vi serve nel codice che vedremo dopo. A questa api key è associata una secret key.

Vediamo in breve come utilizzare tutte queste informazioni per buttar giù due linee di codice.

1 // Prima dell'autenticazione 2 Flickr conn = new Flickr(apiKey, secretKey); 3 string frob = conn.AuthGetFrob(); 4 string loginLink = conn.AuthCalcUrl(frob, AuthLevel.Write); 5 System.Diagnostics.Process.Start(loginLink); 6 MessageBox.Show("Autentica l'applicazione"); 7 8 // Dopo l'autenticazione 9 Auth auth = conn.AuthGetToken(frob); 10 token = auth.Token; 11 conn = new Flickr(apiKey, sharedKey, token);

Riga per riga, step by step
Guardiamo una ed una le linee di codice. La linea (1) si connette a Flickr usando la api key e la secret key. Entrambi i parametri sono due normalissime stringhe, e ci vengono date da Flickr: nessun problema. La linea (2) chiede a Flickr un frob – sono ignorante: non chiedetemi da dove arrivare questo nome. Tramite il frob, possiamo richiedere a Flickr i permessi di scrittura: alla linea (4), inizializziamo una stringa che contiene un url per richiedere l’autenticazione. Il metodo AuthCalcUrl richiede il frob e il livello di permessi richiesti.

La linea (5) apre il browser predefinito per farlo navigare all’url indicato. Evidentemente, Flickr registra il frob e consente l’accesso alla nostra applicazione. La linea (6) aspetta che l’utente prema Ok, cosa che deve essere fatta solo dopo che il browser ha raggiunto l’url. Questo processo viene effettuato da tutte le applicazioni di terze parti, comprese quelle che ho indicato sopra. Il frob cambia ad ogni compilazione, per cui mentre stiamo sviluppando dobbiamo richiedere l’autenticazione ad ogni esecuzione del progetto: quando il progetto è terminato e l’eseguibile è sempre lo stesso, l’autenticazione la si fa la prima volta e poi basta.

Una volta che la richiesta di autenticazione è stata accettata, possiamo riconnetterci a Flickr alla linea (11), che passa attraverso il costruttore dell’oggetto Flickr. Notare la differenza tra la linea (1) e la linea (11): in quest’ultima usiamo api key, secret key e token. Il token viene ottenuto dal nuovo livello di autorizzazioni richiesto alla linea (9).

Concludo: la classe Flickr, la cui istanza conn è ben visibile alla linea (11) è il succo del discorso. Se avete un IDE degno di tal nome e non sviluppate in .NET usando UltraEdit, TextPad o il blocco note, provate a digitare “.” dopo l’oggetto conn: vedrete un gran numero di metodi che permettono di accedere a tutto quello che volete.

Ma magari ne parlerò la prossima volta, adesso ho una riunione!

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.