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:
- Descargar el amigable SimplePie de su sitio web (vamos a utilizar el archivo simplepie.inc.php solamente)
- 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); ?> - Luego, debemos redireccionar los request a archivos JPG a PHP utilizando un .htaccess
RewriteEngine On RewriteRule ^(.*\.jpg(/.*)?)$ twitter.php [L,QSA]
- 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.
<?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);
?>
