API de Twitter

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 temas o incidencias que se van produciendo en el uso de las funciones y que muchas veces cuesta un esfuerzo importante solucionar. He de confesar mi absoluta incapacidad para asistir a clases para aprender algo, siempre he sido autodidacta y la mejor manera que tenía para avanzar en la programación era ver ejemplos de código, por eso he querido hacer este artículo. La idea es que esto pueda ayudar a otros programadores y les ahorre tiempo.

Introducción

La programación y los ejemplos en español 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.

Documentación interesante de Twitter:

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)

[php]
$user = $connection->get(‘users/show’, array("screen_name" => $screen_name));
[/php]

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

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

 

Leer todos los seguidores (followers) de una cuenta de Twitter

[php]
/**
* @return ArrayObject
* Return all followers in Twitter
*/
function get_followers(){
$connection = new TwitterOAuth(get_option("TWITTER_CONSUMER_KEY"),get_option("TWITTER_CONSUMER_SECRET"));
$all_followers = array();
$followers = "";
$cursor = -1;
while ($followers-&amp;amp;amp;gt;next_cursor_str != "0") {
$followers = $connection-&amp;amp;amp;gt;get(‘followers/ids’,array(‘screen_name’ =&amp;amp;amp;gt; "CuentaTwitter","cursor" =&amp;amp;amp;gt; $cursor));
if ($followers-&amp;amp;amp;gt;errors[0]-&amp;amp;amp;gt;code&amp;amp;amp;lt;&amp;amp;amp;gt;""){
echo "Error ".$followers-&amp;amp;amp;gt;errors[0]-&amp;amp;amp;gt;code.": ".$followers-&amp;amp;amp;gt;errors[0]-&amp;amp;amp;gt;message;
}
$all_followers[]=$followers;
$cursor = $followers-&amp;amp;amp;gt;next_cursor_str;
}
unset ($connection);
return $all_followers;
}
[/php]

Leer todos los miembros de una lista de Twitter

[php]
$connection = new TwitterOAuth(get_option("TWITTER_CONSUMER_KEY"),get_option("TWITTER_CONSUMER_SECRET"));
while ($listmembers->next_cursor_str != "0") {
$listmembers = $connection->get(‘lists/members’, array("owner_screen_name" => $_REQUEST[‘username’],"slug" => $_REQUEST[‘listname’],"cursor" => $cursor));
if ($listmembers->errors[0]->code<>""){$return.="Error ".$listmembers->errors[0]->code.": ".$listmembers->errors[0]->message;}
if ($listmembers->errors[0]->code==88){break;}
foreach($listmembers->users as $user){
echo $user->id;
}
$cursor = $listmembers->next_cursor_str;
}
unset($listmembers);
unset($connection);
[/php]

 

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.

[php]
$query = array(‘q’ =>$query,’count’ => 20, ‘result_type’ => ‘recent’);
$results = $connection->get(‘search/tweets’, $query);
$tweets = $results->statuses;
foreach($tweets as $tweet) {

}
[/php]

Operaciones con Tweets

Leer los últimos tweets de una cuenta

[php]
$connection = new TwitterOAuth(get_option("TWITTER_CONSUMER_KEY"),get_option("TWITTER_CONSUMER_SECRET"));
$tweets = $connection->get(‘statuses/user_timeline’, array(‘screen_name’ => "alexborras"));
$i=0;
foreach ($tweets as $tweet ){
$i++;
if ($tweet->in_reply_to_screen_name==""){ // Control para saber si es una respuesta a otro Tweet
if(is_object($tweet->retweeted_status)){ // Es un RT
echo "Tweet $i ".$tweet->created_at." Es un RT";
}else{ // Is Tweet
echo "Tweet $i ".$tweet->created_at." Es un tweet original";
}
}else{
echo "Tweet $i ".$tweet->created_at." Es una respuesta a otro tweet";
}
}
unset ($connection);
unset ($tweet);
[/php]

Marcar un Tweet como favorito

Aquí es necesario usar los 4 parámetros en $connection ya que vamos a hacer que la cuenta haga una acción determinada como es marcar un tweet como favorito.

[php]
$connection = new TwitterOAuth(get_option("TWITTER_CONSUMER_KEY"),get_option("TWITTER_CONSUMER_SECRET"), get_option("TWITTER_ACCESS_TOKEN"), get_option("TWITTER_ACCESS_TOKEN_SECRET"));
$status = $connection->post(‘favorites/create’, array(‘id’ => ‘964847292304982016’));
echo "

<pre>";
print_r($status);
echo "</pre>

";
[/php]

Si ha funcionado bien $status contiene el Tweet, si no el error. Las últimas 3 líneas son para hacer un poco de debug si es necesario, una vez funcione la rutina se pueden eliminar.

Aspectos a tener en cuenta al desarrollar una app para Twitter

Twitter nos da una serie de recomendaciones al crear una App en su plataforma. Una aceptado el Acuerdo y Política del Desarrollador se deben tener en cuenta los siguientes casos de uso restringido.

Información sensible

Tenga cuidado al usar los datos de Twitter para derivar o inferir características potencialmente sensibles sobre los usuarios de Twitter (es decir, salud, afiliación política o religiosa, origen étnico, orientación sexual y más).

Uso y vigilancia del gobierno

Prohibimos el uso de datos de Twitter y API de Twitter por cualquier entidad con fines de vigilancia.

Automatización

Si su aplicación se utilizará para publicar Tweets, seguir cuentas o enviar mensajes directos, debe revisar cuidadosamente las Reglas de automatización para asegurarse de cumplir con nuestras pautas y nunca realizar acciones masivas, agresivas o spam.

Deja un comentario

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

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies