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:
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:
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:
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:
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:
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!
7 Responses to “T#046 – Accedere a Flickr dalle nostre applicazioni iPhone (parte 1)”
27 Maggio 2010
ClegaComplimenti.. Bravi come sempre!! Ne approfitto x una domanda: se volessi mostrare le mie di immagini?
28 Maggio 2010
El JobsoPerfetto! Ottimo tutorial! Volevo però fare una domanda che non c’entra molto con questo argomento: Come faccio a realizzare un orologio?
29 Maggio 2010
Ignazioccontinua a leggere le prossime puntate, vedrai che risponderò.
sei un pochino “off topics” e un pò generico..se posti qualche domanda più specifica sul forum magari possiamo aiutarti.
31 Maggio 2010
ClegaGrazie, resto in attesa allora 😉
9 Febbraio 2012
eddyciao ho letto il tuo tutorial,
molto utile, volevo chiederti pero come fare se voglio utilizzare metodi che richiedono un autorizzazione,
piu precisamente vorrei che la mia app mostrasse tutti gli album che io pubblico su flickr e per far questo vorrei utilizzare il metodo “flickr.activity.userPhotos”…
http://flickr.com/services/auth/?api_key=%5Bapi_key%5D&perms=%5Bperms%5D&frob=%5Bfrob%5D&api_sig=%5Bapi_sig%5D
sto avendo problemi nel capire come aggiungere perms frob e api_sig.
questo è l’interrogativo per applicazioni basate sul web (oppure devo utilizzare l’interrogativo per applicazioni non basate sul web?? mi sto perdendo)
spero tu possa aiutarmi
grazie mille
9 Febbraio 2012
ignaziocavrai sicuramente visto questo link:
http://www.flickr.com/services/api/auth.oauth.html
sei sicuro che per quello che devi fare ti serve l’autenticazione? le foto di un utente sono visibili tramite questa chiamata
http://www.flickr.com/services/api/flickr.photos.getContactsPhotos.html
http://www.flickr.com/services/api/flickr.photos.getContactsPublicPhotos.html
14 Febbraio 2012
eddygentile come sempre in tutte le spiegazioni
grazie mille