Bueno aca dejo un articulo que acabo de escribir, basado en otro en ingles, espero que se entienda lo hice medio apurado antes de cenar jeje, tal vez a alguien le sea de utilidad , Akismet no solo puede ser utilizado en nuestros blogs, sino que puede ser adaptado para usarlo en TGP, LL, etc, y asi evitar un poco el dichoso SPAM. (Con Captcha tambien podemos hacerlo, pero ya hay sistemas que lo saltean)

Quienes utilicen Wordpress, ya estaran acostubrados a escuchar este nombre: Akismet. Dicho sistema fue desarrollado por Automatic la empresa de Matt Mullenweg, el creador de Wordpress. Akismet ha sido ya implementado en varios sistemas de publicacion, como Drupal, Movable Type, Geeklog, PunBB, Coppermine y otros.

Pero que sucede si queremos implementar Akismet en nuestro propio sistema, ¿cómo lo realizamos?, muy siemple, existe una clase escrita en PHP, que nos permitira facilmente incluir el filtro de Akismet en nuestro codigo y ademas podremos “enseñarle” a prevenirnos de futuros mensajes de SPAM; una de las principales caracteristicas de esta aplicacion es esa, la de aprender sobre la marcha.

Lo que necesitaremos es la clase de Akismet para PHP 4, que es lo que trataremos en el presente articulo, puede ser descargada desde la siguiente URL:

http://miphp.net/files/akismet.php4.tar.gz

,el siguiente paso sera crearnos una cuenta en Wordpress.com, para obtener una clave para poder asi utilizar dicha API.

http://wordpress.com/api-keys/

Una vez que tengamos ambas cosas (clase y API Key), podremos seguir adelante con la implementacion de Akismet en nuestro codigo.
Ahora debemos ralizar el llamado a la clase, podemos hacerlo via include() o require():

——————————————————–
include(”Akismet.class.php”);
——————————————————–

——————————————————–
$WordPressAPIKey = ‘INSERTE SU API KEY AQUI’;
$BlogURL = ‘http://www.URL-BLOG.com/’;

$akismet = new Akismet($BlogURL, $WordPressAPIKey);
$akismet->setAuthor($autor);
$akismet->setAuthorEmail($email);
$akismet->setAuthorURL($website);
$akismet->setContent($comentario);
$akismet->setPermalink(”http://www.URL-BLOG.com/post/”);

if($akismet->isSpam())
{
echo “SPAM!”;
} else {
echo “NO ES SPAM”;
}
——————————————————–

Si bien podriamos confiar ciegamente en este filtro, porque anda muy bien, hay casos en los que podemos llegar a obtener falsos positivos, es decir, que mensajes que no son SPAM sean etiquetado como si lo fuesen, es por eso que deberiamos implementar tambien un sistema de cola de espera, e ir colocando en la misma todos los mensajes marcados como SPAM por Akismet, y luego manualmente indicarle si es o no SPAM. Para indicarle a Akismet que un mensaje es definitivamente SPAM o no, utilizaremos lo siguiente para ayudar a entrenar el filtro segun corresponda:

——————————————————–
$akismet->submitSpam();
——————————————————–

——————————————————–
$akismet->submitHam();
——————————————————–

Creo que hasta aqui es entendible el articulo, cualquier consulta al respecto no duden en consultar en el foro.

Enlaces relacionados:
PHP4 Akismet Class
http://miphp.net/blog/view/php4_akismet_class

Akismet API Documentation Version 1.1
http://akismet.com/development/api/

Martin Aberastegue
http://www.phpes.net