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

23 pensamientos en “Buscar tweets con PHP (Twitter API 1.1)

  1. Bitacoras.com
    • Imagen de Emilio Cobos Álvarez el dijo:

      Lo conozco :) Me gusta mucho, pero quería probar hasta dónde podía llegar… A día de hoy lo único que me falta es encontrar la manera de manejar las imágenes fácilmente. No quiero renombrar las imágenes y asignarles como nombre una id, pero es complicado manejar nombres duplicados… Veré por qué me decanto.

  2. Imagen de DiegoDiego el dijo:

    Tema muy interesante y muy práctico tu artículo, he descargado tus archivos para revisar a más fondo el código que has utilizado, pero al momento de ejecutarlo localmente, no realiza ninguna búsqueda.

    ¿Cual crees que puede ser el problema? Gracias de antemano

    Saludos!

    • Imagen de Emilio Cobos Álvarez el dijo:

      Es probable que algún módulo de PHP no esté activo (cURL, posiblemente), o que simplemente la aplicación que hayas creado no esté autorizada para ser usada desde localhost (tienes que especificarlo desde la página de twitter developers a la hora de crear la aplicación)…

  3. Imagen de FabianFabian el dijo:

    Excelente informacion compadre, estoy haciendo un aplicativo parecido al que mostraste y la informacion me va a caer de maravilla, muchas gracias!

  4. Imagen de EdwinEdwin el dijo:

    Excelente amigo, felicitaciones!! como se podria dar RT a traves de esa API, algun comando que genere ese evento… me explico? gracias por la ayuda.

    • Imagen de VladimirVladimir el dijo:

      parcero, es justo lo que estaba buscando…da mucha vuelta pero me servira bastante .. igual sigo buscando la manera de meterlo en una app de android y que en todo caso cargue un timeline publico .. mil gracias y gracias a emiliocobos

  5. Imagen de Rodolfo Soto el dijo:

    Muchas gracias, está buenisimo esto de la Api de twitter, pero me gustaría saber como obtener más de 100 tweets y como buscarlos por lugar, coordenadas, creo que por fecha ya lo tengo casi listo, pero lo otro no logro hacerlo, por ahí vi que con la Api antigua se podía, pero no logro encontrar como hacerlo con la nueva, saludos…

  6. Imagen de monxas el dijo:

    Tienes un bug y la cache nunca se usa.
    en index compruebas que la busqueda no se haya realizado antes, y tiras de caché, pero justo despues de esa comprobacion igualas $result a null, así que nunca va a tirar de caché.

    con un else, como sabrás, lo solucionas. saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar las siguientes etiquetas y atributos HTML:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre data-language=""> <ul> <ol> <li>
Para poner código usa <pre data-language="[lenguaje]"><code>[código]</code></pre>, y no olvides escapar el HTMl.