Crear tu aplicación

Si decides crear tu propia integración, hay algunos aspectos que conviene tener en cuenta:

  1. Para interactuar correctamente con la API de Akismet, tu aplicación debería ofrecer a los usuarios una forma de reportar spam no detectado y falsos positivos, además de realizar comprobaciones de comentarios.
  2. Cuantos más datos envíes con cada comprobación de comentarios, mayores serán las probabilidades de que Akismet evite spam no detectado y falsos positivos.

Estructura de las llamadas a la API

Todas las llamadas a Akismet son solicitudes POST, similares a las que enviaría un formulario web. Las variables de la solicitud deben construirse como una consulta: key=value y con varias variables separadas por ampersands. No olvides codificar los valores para URL.

Tipos de llamadas a la API

Existen tres tipos diferentes de llamadas a Akismet:

  1. Validación de la clave comprueba si se está utilizando una clave de API válida. Resulta especialmente útil si tu aplicación va a tener múltiples usuarios con sus propias suscripciones de Akismet.
  2. Comprobación de comentarios se utiliza para consultar a Akismet si una publicación, comentario, usuario, etc. determinado es spam.
  3. Marcar como spam y marcar como no spam son acciones posteriores para informar a Akismet cuando se ha equivocado (spam no detectado y falsos positivos). Son muy importantes, y no deberías desarrollar con la API de Akismet sin incluir la posibilidad de reportar spam no detectado y falsos positivos.

Pruebas de las llamadas a la API

Akismet funciona analizando toda la información disponible en conjunto. No basta con proporcionar solo el contenido de un mensaje; es necesario enviar tantos datos independientes como sea posible en cada llamada. Por lo tanto, antes de poder probar la precisión de Akismet, debes asegurarte de que estás enviando información completa y correcta.

Para simular un resultado de spam, realiza una llamada a la API comment-check con el campo comment_author establecido en akismet-guaranteed-spam o el campo comment_author_email establecido en akismet-guaranteed-spam@example.com. Completa todos los demás campos obligatorios con valores típicos. La API de Akismet siempre devolverá una respuesta true ante una solicitud válida con uno de esos valores. Si recibes cualquier otra cosa, hay un problema en tu cliente, en los datos o en la comunicación.

Para simular un resultado negativo (no spam), realiza una llamada a la API comment-check con el campo user_role establecido en administrador y todos los demás campos obligatorios completados con valores típicos. La API de Akismet siempre devolverá una respuesta false. Cualquier otra respuesta indica un problema con los datos o la comunicación.

Además, asegúrate de que tu cliente gestione correctamente una respuesta inesperada. No asumas que la API comment-check siempre devolverá true o false. Una solicitud no válida puede generar una respuesta de error; normalmente habrá información adicional disponible en las cabeceras HTTP. Y, por supuesto, un problema de conectividad puede hacer que no se reciba respuesta alguna. Es importante no interpretar erróneamente una respuesta no válida como spam o no spam.

Para pruebas automatizadas, incluye el parámetro is_test=1 en tus pruebas. Esto indicará a Akismet que no modifique su comportamiento en función de esas llamadas a la API, ya que no tendrán efecto de entrenamiento. De este modo, tus pruebas serán razonablemente repetibles, en el sentido de que una prueba no influirá en las llamadas posteriores.

Configuración de la cadena user agent

Si es posible, la cadena user agent siempre debería seguir el siguiente formato:

Application Name/Version | Plugin Name/Version

La cadena user agent del plugin de Akismet para WordPress tendría este aspecto:

WordPress/4.4.1 | Akismet/3.1.7

Tipos de aplicación

Akismet se puede utilizar para filtrar cualquier tipo de contenido generado por usuarios, pero la documentación de la API se escribió originalmente para formularios de comentarios y foros. Si estás desarrollando un formulario de contacto, consulta esta guía adicional sobre el uso de Akismet con formularios de contacto.