Sorteando la autenticación para operaciones básicas en Twitter

Durante el desarrollo de cierto proyecto me surgió la necesidad de obtener los últimos twits de un usuario de Twitter, y dado que el servicio expone una API REST para hacer operaciones, me dispuse a mirar cómo debía hacer las peticiones.

La petición

Tras una búsqueda en Google, vi que la petición que debía realizar en mi caso era muy simple, una petición GET a https://api.twitter.com/1/statuses/user_timeline.json, que además soportaba multitud de parámetros de configuración, con lo cual todo mi trabajo se resumía en montar una pequeña petición.

Además, en el apartado Authentication ponía simplemente Supported, y no Required, con lo que no tenía que ponerme a registrar una aplicación, obtener los token, configurarlos... De modo que todo era muy sencillo. O quizás no.

CLINT

Tranquilo, forastero...

Por desgracia, hay algo de lo que muchos os habréis dado cuenta, y es que la URL que he puesto es de la antigua versión de la API de Twitter, la v1, la cual ya ha sido deshabilitada.

En su lugar ahora debe utilizarse la v1.1, que por desgracia requiere que todas las peticiones estén debidamente autenticadas con sus token correspondientes.

Sinceramente, ponerse a registrar y configurar una aplicación de Twitter, poner las claves de forma que cuando suba el código (el proyecto es Open Source) estas no se suban... me daba muchísima pereza únicamente para obtener los últimos twits de una cuenta de twitter, por lo que, para de paso entretenerme un poco buscando formas alternativas de hacerlo, me monté mi propio sistema (con algo de ayuda externa).

Recurriendo a terceros

Desde hace tiempo sigo el desarrollo de Kimono, una herramienta online que permite montar APIs de scrapping en cualquier página web (que no requiera de autenticación), en apenas unos pocos clicks, y que además permite bastante configuración.

Como el scrapping se basa en CSS Selectors y en HTML ya renderizado, creí que la versión más sencilla sería la versión móvil, así que cargué la URL https://mobile.twitter.com/ seguida por el nombre de usuario, y mediante la extensión pude configurar con 4 clicks la información que quería:

WEB

JSON

Como véis, en unos pocos clicks ya tenemos disponible una API que nos extrae los (en mi caso) 30 últimos twits de un usuario, y los devuelve en un precioso JSON.

Pero ahí no termina la cosa, ya que Kimono además ofrece una característica que multiplica su potencia, los Kimpaths.

Kimpaths

Kimono ofrece la posibilidad de modificar la ruta de la que obtendrá la información que hemos marcado como importante para nosotros simplemente pasando más parámetros a la petición.
Estos parámetros se llaman kimpaths, y como veréis, una imagen vale más que mil palabras:
KIMPATHS

Además, las peticiones hechas a Kimono no requieren ni de uso de tokens, ni registros ni nada, simplemente una URL que ya incluye todo lo necesario para hacer las peticiones, y que además, como hemos visto, permite que se utilice para obtener los últimos twits de cualquier usuario de twitter.

He decidido publicar esto por si alguna vez alguien necesita hacer algo tan simple como esto, y no le apetece ponerse a registrar aplicaciones en twitter y configurar Headers y tokens, sepa que existen otras formas de obtener el mismo resultado.