Externaliser les commentaires

Disqus Je voulais donner la possibilité d’ajouter des commentaires à certaines pages de mes sites, sans pour autant créer le système de soumission. Je me suis tourné vers disqus.com pour leur site clair et leur documentation de l’API.

Besoin

Pour une raison ou pour une autre, la solution d’externaliser les commentaires est intéressante. J’ai testé l’idée sur html-infos.net. Toutes les pages des éléments ont un thread dédié, par exemple html-infos.net/element/acronym.

Sur disqus.com, on peut ajouter un site, qu’on nomme forum. Et dans ce forum, on peut créer des threads. Dans mon cas, je crée les thread avec l’API directement, parce que j’ai beaucoup de page, je n’allais pas les créer manuellement.

Class Disqus

Je me suis créé une class PHP pour dialoguer avec l’API de disqus.com : http://resources.neolao.com/php/disqus

Il faut d’abord récupérer un user_api_key à cette adresse : http://www.disqus.com/api/get_my_key/ (en étant loggué).

Ensuite, j’utilise ma class de cette façon par exemple :

// J'instancie ma class avec mon user_api_key
$disqus = new Disqus('EYVsEbXOZ4Ntk4xVH4nGSjcJvd8uOkKi0ddGcxUMPfCDC85yDlCY1QzhYpZpN3Fa');
 
// Je spécifie le forum que j'utilise avec un identifiant trouvé par la méthode $disqus->getForumList()
$disqus->setForumKey(75631);
 
// Je crée à la volée le thread "foo" s'il n'existe pas
$disqus->setThreadByIdentifier('foo');
 
// Je récupère tous les messages du thread
$posts = $disqus->getPosts();
 
// J'affiche
echo '<ul>';
foreach ($posts as $post) {
    echo '<li>';
    if ($post['is_anonymous']) {
        echo htmlentities($post['anonymous_author']['name'], ENT_QUOTES, 'UTF-8');
    } else {
        echo htmlentities($post['author']['display_name'], ENT_QUOTES, 'UTF-8');
    }
    echo ' : ', htmlentities($post['message'], ENT_QUOTES, 'UTF-8'), '</li>';
}
echo '</ul>';

Evidemment, le user_api_key est faux dans cet exemple :)

Pour soumettre un commentaire, c’est tout aussi simple, j’ai créé une méthode createPost($name, $email, $message).

Conclusion

Je suis satisfait du site et de l’API que je trouve très claire.

J’ai remarqué la possibilité de flagger des commentaires en spam et de bannir des gens. On peut aussi faire en sorte qu’il y ait une modération obligatoire des messages avant mise en ligne, et aussi définir des modérateurs.

Normalement, on peut soumettre un commentaire en anonyme ou en utilisateur identifié chez disqus, mais je n’ai testé que le mode anonyme.

Il y a plusieurs plugins disponibles sur le forum pour différentes plateformes. Apparement, une version javascript est en préparation, pour insérer les commentaires encore plus facilement.

L’administration n’est pas complète par contre, sinon j’ai vraiment mal regardé. J’ai dû passer par l’API pour faire tout ce que j’voulais :)

Commentaires