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? ;)).
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!
Aparecerá la página de la aplicación, donde tenemos el consumer key y el 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.
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