Más sobre la Twitter Class

  • Por
  • PHP
Otros cuantos ejemplos de uso de la librería PHP para acceder fácilmente al API de Twitter desde nuestras aplicaciones web.
En el artículo anterior explicamos los beneficios de usar una librería para simplificar las tareas de comunicación con el API de Twitter en PHP y vimos un primer ejemplo sencillo. Ahora vamos a continuar mostrando otros casos de uso de esta librería, que nos vendrán bien para ir conociendo sus métodos y las posibilidades que se nos abren.

Mostraremos varios ejemplos distintos que nos ayudarán a consumir distintos tipos de información. Sobre el ejemplo del artículo anterior además cabe señalar que no llegamos a autenticarnos en el API con ningún usuario de Twitter, pero muchas de las acciones que podremos desear hacer con el API de Twitter sí requieren el login de un usuario. Así pues, sin más tardar, vamos a aprender a enviar nuestros datos de usuario para poder realizar todas las acciones posibles dentro del API.

Autenticarse en el API de Twitter

Al instanciar el objeto de Twitter Class (la librería comentada en el anterior artículo y que continuamos utilizando) podemos pasar opcionalmente un nombre de usuario y contraseña de Twitter para acceder al API.

Nota: El usuario y contraseña será el de cualquier usuario de Twitter. No necesitamos ningún usuario especial ni permisos para acceder al API.

Esos datos de autenticación los enviaremos de esta manera:

$usuario_twitter = new Twitter("miusuario","miclave");

Ahora podremos acceder a todos los métodos de la librería de acceso al API de Twitter, como podrían ser:

Pedir las 20 últimas participaciones de las personas que sigue el usuario autenticado, junto con sus propios posts. Esto es lo que le llaman la línea de tiempo de los amigos. Por supuesto, tiene que haber un usuario autenticado para que nos den los datos de los amigos de éste.

$statusAmigosyMios = $usuario_twitter->getFriendsTimeline();

Nota: lo que recibo como respuesta a todos estos métodos que vamos a ver es siempre un array con los datos de los post que nos devuelve el API y los usuarios que los han enviado.

Pedir las 20 últimas participaciones del usuario autenticado. Es decir, pedir sólo los post del usuario autenticado.

$statusUsuario = $usuario_twitter->getUserTimeline();

Pedir las 20 últimas participacipaciones del usuario enviado como parámetro. Permite enviar el id de un usuario o el string con el nick de usuario utilizado en Twitter.

$statusUsuario = $usuario_twitter->getUserTimeline("deswebcom");

Pido los usuarios seguidos por otro usuario. Si envío el nombre de un usuario me da los seguidos por ese usuario solicitado, si no se indica nada, me da los seguidos por el usuario autenticado.

$usuarios_friends = $usuario_twitter->getFriends("deswebcom");

Nota: En este último método sigo recibiendo un Array, pero no es un array de estatus de usuarios (o micropost enviados a Twitter), sino que es un array de usuarios simplemente.

Como estos hay otros tantos métodos que podéis conocer en la propia documentación de la librería Twitter Class. Para acabar, vamos a ver el código completo de una página que hace todas estas solicitudes y muestra en la página el resultado.

<?php
include "twitter.php";
$usuario_twitter = new Twitter("usuario","clave");

//pedir las 20 últimas participacipaciones de las personas que sigue el usuario autenticado y sus propios status
$statusAmigosyMios = $usuario_twitter->getFriendsTimeline();
echo "<pre>";
print_r($statusAmigosyMios);
echo "</pre>";


//pedir las 20 últimas participacipaciones del usuario autenticado
$statusUsuario = $usuario_twitter->getUserTimeline();
echo "<pre>";
print_r($statusUsuario);
echo "</pre>";


//pedir las 20 últimas participacipaciones del usuario enviado como parámetro
$statusUsuario = $usuario_twitter->getUserTimeline("deswebcom");
echo "<pre>";
print_r($statusUsuario);
echo "</pre>";

//pido los usuarios a los que siguen el usuario que se envíe por parámetro
$usuarios_friends = $usuario_twitter->getFriends("deswebcom");
echo "<pre>";
print_r($usuarios_friends);
echo "</pre>";

?>

En el siguiente artículo mostraremos cómo enviar mensajes o post a Twitter con la cuenta del usuario autenticado, desde el propio API de Twitter.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Leon

06/9/2010
No funcona ejemplo entregado
La autenticación al parecer ha sido cambiada por twitter y debería usarse una aplicación registrada en el propio twitter.com. Ya no sirve la planteada. Resulta el mensaje
' Basic authentication is not supported '.

Al registrar, se recibe 2 datos muy importantes: el consumerKey y el consumerSecret.

Al registrar se autoriza explícitamente a un(los) dominio(s) desde donde puede ser llamada la aplicación.

Eso es lo que entiendo hasta el momento.
Para registrar la aplicación me voy al footer de twitter.com y le das en el link 'API'.

Estoy en proceso de asimilar el cambio.
Saludos

jorse_9

25/11/2010
Un Error
Los anterires si me sirvieron pero esta eme da un error y no se por que

Fatal error: Uncaught exception 'TwitterException' with message 'Basic authentication is not supported' in /Users/jserrano/Sites/twitter_j/twitter.php:206 Stack trace: #0 /Users/jserrano/Sites/twitter_j/twitter.php(542): Twitter->doCall('statuses/user_t...', Array, true, false) #1 /Users/jserrano/Sites/twitter_j/index_n.php(21): Twitter->getUserTimeline() #2 {main} thrown in /Users/jserrano/Sites/twitter_j/twitter.php on line 206

enzo

24/2/2011
lo mismo
a mi me aparece el mismo error, no se por que :s que clases usas tu para conectar?

ricardo

15/5/2011
Basic authentication is not supported
Estimado

Tengo el siguiente problema al colocar mi nombre de usuario y password en la instancia del objeto Twitter me aparece el siguiente mensaje

'Basic authentication is not supported'

Fatal error: Uncaught exception 'TwitterException' with message 'Basic authentication is not supported' in C:wampwww witterapi witter.php on line 204
( ! ) TwitterException: Basic authentication is not supported in C:wampwww witterapi witter.php on line 204

Gracias de antemano

gaspar belandria

01/6/2011
error en el articulo "mas sobre twitter class"
efectivamente twitter ha cambiado la manera de autenticarse, la forma de hacerlo es con oAuth, debes crear una aplicacion, twitter te da tu consumer_key y tu consumer_key_secret.

el articulo es muy bueno, pero lamentablemente ahora es diferente.

saludos.

Diego

09/8/2011
Cómo se hace entonces?
Tengo la aplicación hecha desde la web de la API de twitter, pero no consigo loguearme para poder usar esta librería. ¿Qué se debería hacer ahora? ¿Cómo nos podríamos loguear con ese código para que funcionase?

Muchísimas gracias.

Douglas Lopez

11/8/2011
Uncaught exception TwitterException with message Basic authentication is not supported
Parece que ya Twitter cambió la forma de autenticacion usada anteriormente como se explica en su tutorial con la funcion:
$usuario_twitter = new Twitter("xxxxxxx","yyyyyyy");
¿cual podemos usar en su lugar?
Le agradezco su ayuda.
Un abrazo

Douglas Lopez

17/8/2011
Twitter cambio la forma de autentificar y muchas de las funciones
Apreciados amigos, pueden ver el sitio:
http://blog.margenn.com/post/2135398085/oauth-introduccion-implementacion-php-pecl-twitter

el cual explica muy bien la nueva forma de autentufucar en twitter.
Saludos,
Douglas López
Caracas - Venezuela