Revista Comunicación

API de Twitter

Publicado el 03 febrero 2018 por Alexborras @alexborras

Esta entrada no tiene la voluntad de ser un Manual de uso de la API de Twitter, eso se puede encontrar en numerosos recursos de Internet. El objetivo de este artículo es recoger aquellos tema o incidencias que se van produciendo en el uso de las funciones y que muchas veces cuesta un esfuerzo importante solucionar. La idea es que esto pueda ayudar a otros programadores y les ahorre tiempo.

Introducción

La programación y los ejemplos están basados en el uso de la librería twitteroauth.php para PHP. Antes de poder utilizar estas funciones es necesario haberse dado de alta como desarrollador de Twitter y haber creado una app.

Instrucciones y funciones de la API de Twitter

Cómo iniciar una conexión con Twitter

La primera función que se debe utilizar siempre, permite crear el objeto $connection que mediante el cual se conecta con Twitter y podemos realizar todas las acciones.

Cuando solo queremos leer tweets basta con dos parámetros:

$connection = new TwitterOAuth("TWITTER_CONSUMER_KEY","TWITTER_CONSUMER_SECRET");

Cómo leer los datos de una cuenta o usuario de Twitter

Cargar en el objeto $user las información de la cuenta de Twitter en función de su nombre de usuario ($screen_name)

$user = $connection->get('users/show', array("screen_name" => $screen_name));

Si el $screen_name es erróneo entonces Twitter devuelve error, lo podemos controlar así:

if ($user->errors[0]->code<>""){
echo "<br>Error:".$user->errors[0]->code.": ".$user->errors[0]->message;
}

Cómo buscar tweets en función de un texto o hashtag

En una de las funciones donde se utiliza para leer tweets en función de un hashtag concreto dejó de leer tweets. Comprobé que la app no tenía ningún tipo de bloqueo o restricción puesta por Twitter. Al final descubrí que buscando un Trending Topics si funcionaba bien pero con el hashtag no. Pese a que si se hacía una búsqueda con Twitter o Tweetdeck de ese hashtag si que devuelve resultados con el query de la API no es así, imagino que influye el bajo volumen de resultados devueltos.

$query = array('q' =>$query,'count' => 20, 'result_type' => 'recent'); $tweets = $results->statuses;
$results = $connection->get('search/tweets', $query);
foreach($tweets as $tweet) {
...
}


Volver a la Portada de Logo Paperblog