Buff, llevaba mucho sin escribir. Lo cierto es que no por gusto (preparar la selectividad, problemas familiares y mononucleosis es un combo letal), pero bueno, lo importante es que ya estoy de vuelta, y tengo algunas cosillas que me gustaría presentar pronto por aquí (¿alguien ha dicho algo de una CMS super ligera? ;)).

Demo Descarga

Bueno, lo que vamos a hacer hoy es buscar tweets con PHP. Twitter nos provee con una API bastante chula, pero por desgracia la autenticación con ella, que se realiza mediante OAuth, es bastante complicada.

Por ello vamos a usar una librería muy bien mantenida llamada TwitterOAuth, que nos facilitará la tarea de hacer las solicitudes a la API.

Lo que haremos por ahora será crear nuestro index.php, una carpeta llamada inc, donde meteremos OAuth.php, twitteroauth.php, Cache.php (éste archivo) y otros archivos que puedan surgir mientras lo hacemos, otra carpeta llamada cache donde almacenaremos las búsquedas, y una última carpeta llamada css para nuestro archivo style.css (yo personalmente lo generaré con compass).

Ya tenemos todo preparado, empecemos!

Paso 1: Crear nuestra aplicación

Lo primero que tendremos que hacer es ir a Twitter Developers e iniciar sesión.

En el desplegable de nuestra foto, hacemos click en My Applications » Create a new aplication. Insertamos el nombre de nuestra aplicación, la descripción y la página en la que va a estar, rellenamos el captcha, y listo!

Desplegable para crear una app
Crear app

Aparecerá la página de la aplicación, donde tenemos el consumer key y el consumer secret:

Consumer keys y consumer secret
Consumer keys y consumer secret

Paso 2: Crear nuestro token de usuario

Para hacer solicitudes a la API necesitamos el token de usuario y el token secret que podemos generar directamente pulsando el botón Create my access token. Con ello ya tenemos todos los datos necesarios para hacer solicitudes a la api.

Crear access token

Paso 3: El index.php

Puedes ver el pequeño formulario descargando el código algo más abajo, pero las líneas relevantes del código son éstas:

$twitteroauth = new TwitterOAuth(APP_CONSUMER_KEY, APP_CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$results = $twitteroauth->get('search/tweets', array(
	'q' => $_GET['q'],
	'lang' => 'es',
	'count' => 5,
	'include_entities' => false,
));

Ésto nos devolverá un objeto stdClass, donde los tweets se guardan en la propiedad statuses

Listo! Ahora ya solo falta mostrarlos a nuestro gusto usando las propiedades adecuadas. Puedes descargar los archivos para ver qué propiedades he usado yo, o ver la demo directamente

Demo Descarga