Portada » Snippets

Firma twitter para foros IPB con PHP + GD + SimplePie

23 Noviembre 2009 Sin comentarios
escrito por : hypn

Hace mucho tiempo que circulo por foros de internet, el que más visito es Tarreo y como usa Invision Power Board, no puedo poner una firma con imágenes dinámicas. Es por esto que tuve que acudir a una solución, hacer una imágen dinámica que pudiera ser vista en cualquier foro invision protegido.

Para lograr este objetivo necesitaremos los siguientes ingredientes:

  • Tener cuenta Twitter (publica, con protección de twitts no sirve)
  • Saber PHP
  • Conocer la librería GD (para PHP)
  • SimplePie
  • Servidor para hostear la imagen (con soporte curl)
  • Conocer de .htaccess

La idea es utilizar SimplePie para que se lea el RSS de mi cuenta para que con PHP + GD se genere una imagen dinámica, luego con el .htaccess se redireccionan todos los archivos .jpg a.php (esta es la joda para tinelli)

Preparación:

  1. Descargar el amigable SimplePie de su sitio web (vamos a utilizar el archivo simplepie.inc.php solamente)
  2. Creamos el archivo twitter.php (con vim, gedit, eclipse, textmate o lo que se les ocurra) con el siguiente código:
    <?php
    require 'simplepie.inc.php';
    // Configuraciones
    $feed_url    = "http://twitter.com/statuses/user_timeline/MI_RSS_DEL_TIMELINE.rss";
    $feed        = new SimplePie($feed_url);
    // Configuraciones de la imagen
    $im          = imagecreatetruecolor(320, 60);
    $text_color  = imagecolorallocate($im, 0, 0, 0);
    $tw_color    = imagecolorallocate($im, 56, 204, 255);
    $bg_color    = imagecolorallocate($im, 255, 255, 255);
    // Despliegue
    imagefilledrectangle($im, 1, 1, 318, 58, $bg_color);
    imagestring($im, 2, 5, 5, 'Twitter', $tw_color);
    // Me traigo el ultimo tweet
    foreach ($feed->get_items(0, 1) as $item)
    {
       $twitt = $item->get_title();
    }
    // Lo corto y le hago wordwrap
    $twitt = wordwrap($twitt, 58, '\n');
    $twitt_texts = explode('\n', $twitt);
    foreach ($twitt_texts as $i =>; $t)
    {
       imagestring($im, 1, 55, 14*($i+1), $t, $text_color);
    }
    // Muestro la imagen
    header('Content-type: image/jpeg');
    imagejpeg($im, NULL, 100);
    imagedestroy($im);
    ?>
  3. Luego, debemos redireccionar los request a archivos JPG a PHP utilizando un .htaccess
    RewriteEngine On
    RewriteRule ^(.*\.jpg(/.*)?)$ twitter.php [L,QSA]
  4. Ahora lo subes a tu servidor y lo revisas, deberia ser algo como:

Deje cocinar a fuego lento.
Sirva acompañado con galletas de salvado.

Claramente podemos aplicarnos mucho más en el código, pero esto salio de improviso y fue relativamente rápido.

Comparte:
  • Facebook
  • Twitter
  • Google Bookmarks
  • Meneame
  • Tumblr
  • Live
  • del.icio.us
Line Break

Author: hypn (36 Articulos)

Desarrollador PHP a tiempo completo, especializado en web-apps y en tratar de innovar en todo sentido de la vida. Actualmente cursando Ingenieria Informatica, busca la manera de equilibrar su vida entre el desarrollo, la universidad, su polola y su trabajo. Desde este año, en la búsqueda del emprendimiento...Puedes visitar su blog o puedes seguirlo en twitter.

Deja tu comentario!

Debes estar Logeado para dejar un comentario.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes