Soumettre un indésirable (indésirable manqué)

Cet appel est destiné à soumettre des commentaires qui n’ont pas été marqués comme indésirables mais qui auraient dû l’être.

Il est très important que les valeurs que vous soumettez avec cet appel correspondent le plus possible à celles de vos appels comment‑check. Afin d’apprendre de ses erreurs, Akismet a besoin de faire correspondre vos signalements de spam manqué et de faux positifs aux appels d’API comment‑check effectués lorsque le contenu a été publié pour la première fois. Bien qu’il soit normal que moins d’informations soient disponibles pour les appels submit‑spam et submit‑ham (la plupart des systèmes de commentaires et des forums ne stockeront pas toutes les métadonnées), vous devez vous assurer que les valeurs que vous envoyez correspondent à celles du contenu original.

Cette méthode est appelée avec l’URL suivante :

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

Cet appel utilise les mêmes arguments que l’appel vérification de commentaire.
Important : tous les paramètres doivent être envoyés via la méthode POST.

Paramètres

api_key (obligatoire)
Votre clé API Akismet. Vous pouvez la trouver sur votre tableau de bord de compte à l’adresse https://akismet.com/account/

blog (obligatoire)
L’URL de la page d’accueil ou de la page d’accueil de l’instance qui effectue la demande. Pour un blog ou un wiki, il s’agirait de la page d’accueil. Remarque : doit être un URL complet, y compris http://.

user_ip (obligatoire)
Adresse IP de l’auteur du commentaire.

user_agent
Chaîne d’agent utilisateur du navigateur Web qui soumet le commentaire – généralement la variable CGI HTTP_USER_AGENT. Ne pas confondre avec l’agent utilisateur de votre bibliothèque Akismet.

referrer (notez l’orthographe)
Le contenu de l’en-tête HTTP_REFERER doit être envoyé ici.

permalink
L’URL permanente complète de l’entrée à laquelle le commentaire a été soumis.

comment_type
Une chaîne qui décrit le type de contenu envoyé. Exemples :

  • comment : un commentaire de blog.
  • forum‑post : un message de forum de premier niveau.
  • reply : une réponse à un message de forum de premier niveau.
  • blog‑post : un article de blog.
  • contact‑form : un formulaire de contact ou une soumission de formulaire de commentaires.
  • signup : un nouveau compte utilisateur.
  • message : un message envoyé entre quelques utilisateurs seulement.

Vous pouvez envoyer une valeur qui ne figure pas dans la liste ci-dessus si aucune d’entre elles ne décrit précisément votre contenu. Cela est expliqué plus en détail ici.

comment_author
Nom soumis avec le commentaire.

comment_author_email
Adresse e‑mail soumise avec le commentaire.

comment_author_url
URL soumise avec le commentaire. N’envoyez qu’une URL saisie manuellement par l’utilisateur, pas une URL générée automatiquement comme l’URL de profil de l’utilisateur sur votre site.

comment_content
Le contenu qui a été soumis.

comment_date_gmt
L’horodatage UTC de la création du commentaire, au format ISO 8601. Peut être omis pour les demandes de vérification de commentaire si le commentaire est envoyé à l’API au moment de sa création.

comment_post_modified_gmt
L’horodatage UTC de l’heure de publication de l’article, de la page ou du fil de discussion sur lequel le commentaire a été publié.

blog_lang
Indique la ou les langues utilisées sur le blog ou le site, au format ISO 639‑1, séparées par des virgules. Un site avec des articles en anglais et en français pourrait utiliser « en, fr_ca ».

blog_charset
L’encodage des caractères pour les valeurs de formulaire incluses dans les paramètres comment_*, telles que « UTF-8 » ou « ISO-8859-1 ».

user_role
Le rôle de l’utilisateur qui a soumis le commentaire. Il s’agit d’un paramètre facultatif. Si vous le définissez sur « administrateur », Akismet renverra toujours false.

is_test
Il s’agit d’un paramètre facultatif. Vous pouvez l’utiliser lorsque vous soumettez des requêtes de test à Akismet.

recheck_reason
Si vous envoyez du contenu à Akismet pour qu’il soit revérifié, comme un article qui a été modifié ou d’anciens commentaires en attente que vous souhaitez revérifier, incluez le paramètre recheck_reason avec une chaîne décrivant pourquoi le contenu est revérifié. Par exemple, recheck_reason=edit.

honeypot_field_name
Si vous utilisez un champ honeypot dans votre implémentation, incluez le nom du champ dans votre demande ainsi que la valeur de ce champ. Par exemple, si vous avez un champ honeypot qui ressemble à <input type="text" name="hidden_honeypot_field" style="display: none;" />, vous devez inclure deux paramètres supplémentaires dans votre demande : honeypot_field_name=hidden_honeypot_field et hidden_honeypot_field=[la valeur de l'entrée].

comment_context
Le paramètre comment_context fournit un contexte pour l’environnement dans lequel le commentaire a été publié : une liste d’étiquettes ou de catégories appliquées à l’article de blog parent ou au site sur lequel le commentaire a été publié.

Spécifiez comment_context en utilisant la notation de paramètre de tableau de style PHP : comment_context[]=cooking&comment_context[]=recipes&comment_context[]=bbq. Notez que toutes les étiquettes ou catégories doivent être extraites de l’article parent ou de l’environnement ; elles ne doivent pas être fournies par les commentateurs eux‑mêmes.

Autres variables d’environnement du serveur
En PHP, il existe un tableau de variables d’environnement appelé $_SERVER qui contient des informations sur le serveur Web lui-même ainsi qu’une clé/valeur pour chaque en-tête HTTP envoyé avec la demande. Ces données sont très utiles pour Akismet. La façon dont le contenu soumis interagit avec le serveur peut être très révélatrice, veuillez donc inclure autant d’informations que possible.

Exemple 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_spam( '123YourAPIKey', $data );
 
function akismet_submit_spam( $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-spam';
    $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;
    }
}

Cet appel renvoie une seule réponse :

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.
)

Nous sommes là pour vous aider

Si vous êtes bloqué ou avez besoin d’aide pour résoudre un problème, n’hésitez pas à nous contacter.