Logo Flickr In questo tutorial cercheremo di costruire insieme un’applicazione perfettamente funzionante che racchiuda parte dei concetti che abbiamo già trattato in altri toutorial e concetti nuovi che verranno affrontati qui per la prima volta.

Come sempre cercherò di costruire l’applicazione per approssimazioni successive, ponendo l’accento su quelli che possono essere gli errori più comuni nello sviluppo di un app completa.

In questa prima parte non ci occuperemo della parte di sviluppo su iphone, ma sarà una introduzione generale all’utilizzo delle API di Flickr ed al protocollo REST in genere.

Il progetto:

L’applicazione che vogliamo realizzare è un semplice cient per Flickr, quello che vogliamo fare è riuscire a scaricare e visulizzare le foto che flickr marca come “interessanti”. Questo elenco viene aggiornato quotidianamente quindi ogni giorno l’applicazione fornirà foto diverse.

Suppongo che tutti i lettori conoscano il servizio offerto da Flickr (in caso contrario vi esorto a visitare il sito flickr.com), ma magari non tutti sanno che flickr offre un ottimo e documentatissimo seti di API (Application Programming Interface) per accedere al suo database.

Ma come si fa ad usare queste API? Flickr mette a disposizione ben tre sistemi diversi, SOAP, XML-RPC e REST. Per la sua semplicità e versatilità noi utilizzeremo proprio quest’ultimo. Accedere alle API flickr tramite REST significa, in breve, costruire un particolare URL secondo le istruzioni fornite da flickr stesso, effettuare una chiamata HTTP su questo URL e analizzare il contenuto della risposta del server. Più facile a farsi che a dirsi, sarà tutto più chiaro proseguendo nella lettura.

Iniziamo

:

La prima cosa da fare è quella di registrarsi su Flickr e richiedere una propria API_KEY, una stringa alfanumerica che servirà per identificare le nostre applicazioni.

La pagina da visistare è questa:

http://www.flickr.com/services/api/

Una volta registrati potremo cliccare sul link “api keys” per richiedere la nostra key personale.

Ottenuta la nostra chiave, diamo uno sguardo alla pagina http://www.flickr.com/services/api/, da questa pagina è possibile accedere a tutta la documentazione che flickr fornisce per le sue api.

Cliccando su “request formats – REST” prendiamo nota che gl indirizzi URL da realizzare sono nella forma:

1
http://api.flickr.com/services/rest/?method=flickr.test.echo&name=value

In questo caso stiamo chiamando la funzione “flickr.test.echo” passando “value” come argomento per il parametro “name”.

Ottenute queste informazioni generali, possiamo vedere nello specifico la funzione flickr.interestingness.getList a questa pagina:

http://www.flickr.com/services/api/flickr.interestingness.getList.html

questa funzione restituisce la lista delle foto interessanti del giorno stesso e della data specificata, e richiede come unico parametro non opzionale la propria api key

L’url quindi da interrogare sarà questo:

1
http://api.flickr.com/services/rest/?method=flickr.interestingness.getList&api_key=aa9999a999999999999aa999aa999a99

(ovviamente al posto di “aa9999a999999999999aa999aa999a99” dovete inserire la vostra apikey)

Possiamo fare già una prima prova, apriamo il nostro browser e copiamo nella barra dell’indirizzo l’url che abbiamo costruito e premiamo invio. quello che vedremo sarà un file XML contentente tutte le informazioni necessarie per recuperare e visualizzare le  immagini.

(con alcuni browser, tra cui Chrome e Safari, viene visualizzata una pagina bianca, in quel caso bisogna semplicemente visualizzare il sorgente della pagina per esaminare il file XML).

La risposta di flickr ha questa struttura:

1
2
3
4
5
6
7
<rsp stat="ok">
<photos page="1" pages="5" perpage="100" total="500">
<photo id="4615393244" owner="9049132@N04" secret="e2e21720d6" server="3360" farm="4" title="my good boy &amp; my new toy" ispublic="1" isfriend="0" isfamily="0" />
<photo id="4614986043" owner="41049110@N02" secret="3222884afd" server="4051" farm="5" title="Mountain Hare Rolling in Snow" ispublic="1" isfriend="0" isfamily="0" />
<photo id="4615636115" owner="32131681@N00" secret="a38974b053" server="4066" farm="5" title="Cully" ispublic="1" isfriend="0" isfamily="0" />
</photos>
</rsp>

Resta da capire come ottenere, a partire da questo file xml l’immagine in questione!

Per far questo basterà consultare la solita documentazione fornita da flickr visibile a questo indirizzo:

http://www.flickr.com/services/api/misc.urls.html

La pagina è in inglese, ma credo che gli esempi siano piuttosto chiari, lo schema url che useremo sarà il seguente:

1
http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg

per visualizzare la prima foto presente nel file xml quindi sarà visibile all’indirizzo:

1
http://farm4.static.flickr.com/3360/4615393244_e2e21720d6.jpg

A questo punto possiamo avere già un’idea di come dovrà funzionare na nostra applicazione, per prima cosa dovrà scaricare il file xml contenente tutte le informazioni necessarie, poi bisognerà parsare questo file per ottenere i singoli valori (leggete l’ottimo tutorial di Andrea Busi a tal proposito) e successivamente potremo costruire tutti gli url delle immagini per visualizzarle e salvarle sul nostro iphone.

alla prossima puntata!