PHP + Twitter: Obtener los datos de una búsqueda
Ya son varios los que me han pedido como generar una consulta en la API de Twitter de una búsqueda general, pues bien, en este tutorial vamos a aprender a como obtener un JSON con todos los datos de una búsqueda de twitter. Si no sabes de lo que estoy hablando, te recomiendo que le eches un vistazo a estos tutoriales.
CÓMO USAR LA API DE TWITTER EN PHPPHP + TWITTER: CÓMO ENVIAR TWEETS DESDE PHPPHP + TWITTER: HACER FOLLOW Y UNFOLLOW A UN USUARIO DESDE PHPPHP + TWITTER: HACER RT Y FAVORITO A UN TWEET DESDE PHP
Tenemos que tener en cuenta la documentación que nos proporciona twitter a la hora de querer hacer búsquedas en su API:
https://dev.twitter.com/docs/api/1.1/get/search/tweets
En esta documentación, podemos ver que si queremos obtener información de twitter tenemos que atacara a la dirección:
https://api.twitter.com/1.1/search/tweets.json
Atacaremos con el parámetro requerido "q", del inglés "query" cuyo valor va a ser lo que queramos buscar. También tenemos unos parámetros opcionales donde podemos hacer la búsqueda más restrictiva, estos parámetros los podéis consultar en el enlace que hay más arriba.
Una vez que sabemos como obtener los datos de la Api, nos vamos a construir una función que devuelva un JSON con los datos de la API de twitter en función de una búsqueda y el número de resultados que queremos obtener.
Como hemos hecho en tutoriales anteriores, vamos a hacer uso de la librería TwitterAPIExchange que nos va a facilitar la comunicación con la API de twitter.
function getJsonTweets($query,$num_tweets){ ini_set('display_errors', 1); require_once('TwitterAPIExchange.php'); /** Set access tokens here - see: https://dev.twitter.com/apps/ **/ $settings = array( 'oauth_access_token' => "", 'oauth_access_token_secret' => "", 'consumer_key' => "", 'consumer_secret' => "" ); if($num_tweets>100) $num_tweets = 100; $url = 'https://api.twitter.com/1.1/search/tweets.json'; $getfield = '?q='.$query.'&count='.$num_tweets; $requestMethod = 'GET'; $twitter = new TwitterAPIExchange($settings); $json = $twitter->setGetfield($getfield) ->buildOauth($url, $requestMethod) ->performRequest(); return $json; }
Si hacemos uso de esta función de la siguiente forma:
echo getJsonTweets("GeekyTheory",5);
Obtendremos un JSON con los siguientes datos:
Una vez que hemos obtenido el JSON, lo parseamos y filtramos con los datos que queramos obtener, pero eso ya se sale fuera del objetivo del tutorial. Si no sabes como parsear un JSON, visita la serie de tutoriales sobre JSON.
PODÉIS DESCARGAR EL CÓDIGO EN EL SIGUIENTE REPOSITORIO DE GITHUB.
Espero que os haya gustado, ¡saludos! @alex_esquiva