Esto se iba a llamar "Tonteando un rato con rflickr", pero creo que va a ser una serie de posts con cositas curiosas sobre esta gema de rails.

Casi todos los que nos hemos puesto manos a la obra con rails hemos visto los famosos screencasts. A mi el de flickr me enamoró por lo sencillo que parece todo. Hace poquito necesité hacer una cosa bastante específica para una pruebecilla en rails y decidí investigar más a fondo la API de Flickr y su uso desde rails.

¿Por qué rFlickr? Pues porque tiene muchas más opciones para interactuar con la API, no sólo la de recoger fotos.

Antes de empezar:

Necesitarás una API key, hazte con ella.

Para una lista completa de lo que puede hacer rflickr te recomiendo que mires su documentación. Si no la tienes a mano mira en GemJack.

Al lio!

Bueno, lo primero que tenemos que hacer es ver cómo construye flickr la ruta al buddyicon.

Analizando la URL vemos 3 partes, de las cuales necesitamos averiguar 2:

  • El iconserver, en este caso el 25.
  • El user_id, en este caso el 59629307@N00.

El último número (1127666687) todavía no se lo que es, pero ya lo averiguaré, en este caso no nos hace falta para sacar el buddy.

Tenemos que partir de conocer al menos un dato del usuario. Los más usuales son el nombre de usuario o el email.

Si partimos del nombre de usuario la manera de obtener el buddy sería la siguiente:

  API_KEY = "xxx"
   SECRET_KEY = "xxx"
     flickr = Flickr.new(nil, API_KEY, SECRET_KEY)
     flickr.auth_mode = false
     usuario = flickr.people.findByUsername("nombre_de_ususario")
     datos_usuario = flickr.people.getInfo(usuario.nsid)
     @buddyicon = "http://static.flickr.com/"+datos_usuario.iconserver.to_s+"/buddyicons/"+datos_usuario.nsid+".jpg"

Si partimos del email sólo cambiaría una linea:

Si tienes curiosidad por todos los datos que devuelven las funciones que hemos usado puedes verlo en la api: flickr.people.findByUsername (o flickr.people.findByEmail) y flickr.people.getInfo

Más fácil imposible!