Envío de falsos positivos

La llamada submit‑ham está destinada para el envío de falsos positivos: elementos que han sido incorrectamente clasificados como spam por Akismet. Utiliza los mismos argumentos que la comprobación de comentarios y el envío de spam.

Recuerda que, como se explica en nuestra documentación del envío de spam, debes asegurarte de que los valores que estás enviando aquí coinciden con la llamada original y correspondiente de comment‑check.

Este método se llama con la siguiente URL:

https://rest.akismet.com/1.1/submit-ham

Esta llamada utiliza los mismos argumentos que la llamada de comprobación de comentarios.
Importante: todos los parámetros se deben enviar usando el método POST.

Parámetros

api_key (necesario)
Tu clave de API de Akismet. Puedes encontrarla en el escritorio de tu cuenta en https://akismet.com/account/

blog (necesario)
La página de inicio o URL principal de la instancia que realiza la solicitud. Para un blog o wiki, esto sería la página de inicio. Nota: debe ser una URL completa, incluyendo http://.

user_ip (necesario)
Dirección IP del remitente del comentario.

user_agent
Cadena de agente de usuario del navegador web que envía el comentario, generalmente la variable HTTP_USER_AGENT cgi. No debe confundirse con el agente de usuario de tu biblioteca de Akismet.

referrer (atención a cómo está escrito)
El contenido del encabezado HTTP_REFERER debe enviarse aquí.

permalink
La URL permanente completa de la entrada a la que se envió el comentario.

comment_type
Una cadena que describe el tipo de contenido que se está enviando. Ejemplos:

  • comment: un comentario de blog.
  • forum‑post: un mensaje de foro de nivel superior.
  • reply: una respuesta a un mensaje de foro de nivel superior.
  • blog‑post: una entrada de blog.
  • contact‑form: un formulario de contacto o de opinión.
  • signup: una nueva cuenta de usuario.
  • message: un mensaje enviado entre algunos usuarios.

Puedes enviar un valor no listado anteriormente si ninguno de ellos describe con precisión tu contenido. Esto se explica con más detalle aquí.

comment_author
Nombre enviado con el comentario.

comment_author_email
Dirección de correo electrónico enviada con el comentario.

comment_author_url
URL enviada con el comentario. Solo envía una URL que haya sido introducida manualmente por el usuario, no una URL generada automáticamente como la URL del perfil del usuario en tu sitio.

comment_content
El contenido que se ha enviado.

comment_date_gmt
La fecha y hora UTC de la creación del comentario, en formato ISO 8601. Puede omitirse para solicitudes de comprobación de comentarios si el comentario se envía a la API en el momento de su creación.

comment_post_modified_gmt
La fecha y hora UTC de la publicación de la entrada, página o hilo en el que se publicó el comentario.

blog_lang
Indica el o los idiomas utilizados en el blog o sitio, en formato ISO 639‑1, separados por comas. Un sitio con artículos en inglés y francés podría usar «en, fr_ca».

blog_charset
La codificación de caracteres para los valores del formulario incluidos en los parámetros comment_*, como «UTF-8» o «ISO-8859-1».

user_role
El rol del usuario que envió el comentario. Este es un parámetro opcional. Si lo estableces en «administrator», Akismet siempre devolverá false.

is_test
Este es un parámetro opcional. Puedes usarlo para enviar consultas de prueba a Akismet.

recheck_reason
Si estás enviando contenido a Akismet para que se vuelva a comprobar, como una publicación que ha sido editada o comentarios pendientes antiguos que te gustaría volver a verificar, incluye el parámetro recheck_reason con una cadena que describa por qué se está volviendo a verificar el contenido. Por ejemplo, recheck_reason=edit.

honeypot_field_name
Si utilizas un campo honeypot en tu implementación, incluye el nombre del campo en tu solicitud, así como el valor de ese campo. Por ejemplo, si tienes un campo honeypot así: <input type=»text» name=»hidden_honeypot_field» style=»display: none;» />, entonces debes incluir dos parámetros adicionales en tu solicitud: honeypot_field_name=hidden_honeypot_field y hidden_honeypot_field=[el valor del input].

comment_context
El parámetro comment_context proporciona contexto para el entorno en el que se publicó el comentario: una lista de etiquetas o categorías aplicadas a la entrada de blog principal o al sitio en el que se publicó el comentario.

Especifica comment_context usando una notación en estilo PHP del parámetro arraycomment_context[]=cooking&comment_context[]=recipes&comment_context[]=bbq. Ten en cuenta que cualquier etiqueta o categoría debe tomarse de la entrada principal o del entorno; no deben ser proporcionadas por los autores de los comentarios.

Otras variables del entorno del servidor
En PHP, hay un conjunto de variables llamado $_SERVER que contiene información sobre el servidor web en sí, así como una key/value para cada encabezado HTTP enviado con la solicitud. Esta información es muy útil para Akismet. Cómo interactúa el contenido enviado con el servidor puede ser muy revelador, así que incluye la mayor cantidad posible de él.

Ejemplo en PHP

$data = array(
    'blog' => 'http://yourgroovydomain.com',
    'user_ip' => '127.0.0.1',
    'user_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6',
    'referrer' => 'http://www.google.com',
    'permalink' => 'http://yourgroovydomain.com/blog/post=1',
    'comment_type' => 'comment',
    'comment_author' => 'admin',
    'comment_author_email' => 'test@example.com',
    'comment_author_url' => 'http://spam.example.net',
    'comment_content' => 'It means a lot that you would take the time to review our software.Thanks again.'
);
 
akismet_submit_ham( '123YourAPIKey', $data );
 
function akismet_submit_ham( $api_key, $data ) {
    $request = 'api_key=' . urlencode( $api_key ) .
        '&blog=' . urlencode($data['blog']) .
        '&user_ip=' . urlencode($data['user_ip']) .
        '&user_agent=' . urlencode($data['user_agent']) .
        '&referrer=' . urlencode($data['referrer']) .
        '&permalink=' . urlencode($data['permalink']) .
        '&comment_type=' . urlencode($data['comment_type']) .
        '&comment_author=' . urlencode($data['comment_author']) .
        '&comment_author_email=' . urlencode($data['comment_author_email']) .
        '&comment_author_url=' . urlencode($data['comment_author_url']) .
        '&comment_content=' . urlencode($data['comment_content']);
 
    $host = $http_host = 'rest.akismet.com';
    $path = '/1.1/submit-ham';
    $port = 443;
    $akismet_ua = "WordPress/4.4.1 | Akismet/3.1.7";
    $content_length = strlen( $request );
    $http_request  = "POST $path HTTP/1.0rn";
    $http_request .= "Host: $hostrn";
    $http_request .= "Content-Type: application/x-www-form-urlencodedrn";
    $http_request .= "Content-Length: {$content_length}rn";
    $http_request .= "User-Agent: {$akismet_ua}rn";
    $http_request .= "rn";
    $http_request .= $request;
 
    $response = '';
 
    if ( false != ( $fs = @fsockopen( 'ssl://' . $http_host, $port, $errno, $errstr, 10 ) ) ) {
        fwrite( $fs, $http_request );
 
        while ( !feof( $fs ) ) {
            $response .= fgets( $fs, 1160 ); // One TCP-IP packet
        }
        
        fclose( $fs );
 
        $response = explode( "rnrn", $response, 2 );
    }
 
    if ( 'Thanks for making the web a better place.' == $response[1] ) {
        return true;
    } else {
        return false;
    }
}

Esta llamada devuelve una única respuesta:

Array (
    [0] => HTTP/1.1 200 OK
           Server: nginx
           Date: Mon, 24 Feb 2014 20:41:15 GMT
           Content-Type: text/html; charset=utf-8
           Connection: close
           Content-length: 41
    [1] => Thanks for making the web a better place.
)

Estamos aquí para ayudarte

Si te bloqueas o necesitas ayuda para solucionar algo, no dudes en ponerte en contacto con nosotros.