Mostrar último tweet en una página web

27th Mar 2010PHP, Tutoriales, XML

Esta es una de las cosas que encuentro que son bastante útiles para ofrecerle a nuestros clientes en un sitio web. Sobre todo porque ahora está de moda twitter.

Entonces: vamos al grano. Lo primero es saber que es lo que queremos: Publicar el último tweet de algún usuario de twitter en un sitio web.

Para esto, tenemos que tener alguna manera de recibir los datos del usuario, y que mejor que el RSS que ofrece twitter. Este archivo está linkeado en la página de cada usuario y su URL es algo similar a la siguiente:

http://twitter.com/statuses/user_timeline/14057420.rss

El ID de usuario corresponde al número que aparece antes de “.rss”.

Por lo tanto, ahora tenemos que leer el XML de la siguiente manera:

<?
$url="http://twitter.com/statuses/user_timeline/14057420.rss";
$xmlstr = file_get_contents($url);
$xml = simplexml_load_string($xmlstr);
$tweet = $xml->channel->item[0]->title;
echo str_replace("peivem_com: ","",utf8_decode($tweet));
$fecha = $xml->channel->item[0]->pubDate;
$fecha = strtotime($fecha);
?>

En este caso, el usuario es “peivem_com”. Por lo mismo, en la línea 6 del código anterior reemplazamos “peivem_com: ” por “” (nada). Esto lo hacemos porque cada tweet del RSS viene con el nombre de usuario seguido de “: “. De esta manera, sólo dejaremos el tweet del usuario.

En esta misma línea, está la función str_replace(), que recibe 3 datos: el texto a buscar, el texto a reemplazar y el texto original. En este último, pasamos el valor $tweet, pero dentro de la función utf8_decode(), que nos servirá para decodificar los caracteres “raros” que vengan en la cadena, producto de la distinta codificación.

En la línea 7 recibimos la fecha y en la 8 la transformamos a un valor “universal” por así decirlo. De esta manera, donde queramos mostrar la fecha escribiremos la siguiente línea:

<? echo date('d/m/Y',$fecha); ?>

Y eso es todo. Es algo simple y que puede ser modificado fácilmente.

2 Comments Comments Feed

  1. Angelo (13/02/2011, 10:28). Reply

    Hola, me gusto tu post, gracias.
    Una pregunta:
    ¿Como haría para que reconosca los enlaces y los imprima como enlaces? ya que con el codigo que propones si un tweet tienen enlaces solo aparece la dirección pero si le haces click no te lleva a ningun lado pues falta el vinculo.
    De antemano gracias por tu ayuda.
    Saludos.

    • Sebastian Barria (24/02/2011, 00:15). Reply

      Hola Angelo.
      Tendrías que pasar el cuerpo del tweet por una función como esta:
      function autoLinkear($texto){
      $texto=ereg_replace("[[:alpha:]]+://[^[:space:]]+[[:alnum:]/]", "\",$texto);
      return $texto;
      }

      Suerte!

Add a Comment

Suscribirme a los siguientes comentarios vía email (también puedes suscribirte sin comentar.

Switch to our mobile site