Pengantar
Akismet adalah layanan deteksi Spam yang dikelola oleh Automattic, perusahaan yang mengelola juga WordPress. Akismet secara resmi dibundle bersama setiap edisi rilis WordPress. Skema layanan yang dipakai dari mulai free sampai berbayar (khusus enterprise).
Untuk dapat menggunakan layanan Akismet, silakan daftarkan diri anda dulu untuk mendapat Akismet Key (kunci untuk menggunakan API Akismet). Daftar di
http://akismet.com.
NB. Jika anda telah menggunakan platform WordPress, silakan gunakan akismet key anda (cek e-mail saat signup di WordPress.com, karena setiap pendaftaran di WordPress.com selalu mendapat akismet key).
Untuk urusan wrapper layanan Akismet, pada tutorial kali ini kita akan menggunakan class Akismet-PHP4 (silakan lihat dan unduh filenya di
http://code.google.com/p/akismet-php4/. Walaupun dikhususkan untuk PHP4, sebenarnya class ini berjalan sempurna di PHP4 keatas (termasuk PHP5).
Deteksi Spam
Berikut adalah contoh penggunaan class Akismet-PHP4.
[sourcecode language="php"]
include 'akismet.class.php';
// contoh komentar/pesan sampah.
$comment = array(
'author' => 'viagra-test-123',
'email' => 'test@example.com',
'website' => 'http://www.example.com/',
'body' => 'This is a test comment',
'permalink' => 'http://your-domain.com/path-to-your-comment-page',
'user_ip' => 'an-ip-address', // Optional, if not in array defaults to $_SERVER['REMOTE_ADDR'].
'user_agent' => 'user-agent-string', // Optional, if not in array defaults to $_SERVER['HTTP_USER_AGENT'].
);
// inisiasi class. ganti URL domain, dan Key Akismet dengan milik anda
$akismet = new Akismet('http://www.yourdomain.com/', 'YOUR_WORDPRESS_API_KEY', $comment);
// Test for errors.
if($akismet->errorsExist()) { // Returns true if any errors exist.
if($akismet->isError('AKISMET_INVALID_KEY')) {
// Do something.
} elseif($akismet->isError('AKISMET_RESPONSE_FAILED')) {
// Do something.
} elseif($akismet->isError('AKISMET_SERVER_NOT_FOUND')) {
// Do something.
}
} else {
// No errors, check for spam.
if ($akismet->isSpam()) { // Returns true if Akismet thinks the comment is spam.
// Do something with the spam comment.
} else {
// Do something with the non-spam comment.
}
}
[/sourcecode]
Contoh skrip diatas akan menampilkan detail hasil deteksi, jika direkomendasikan Akismet sebagai sebuah spam, anda bisa melakukan proses lanjutan dengan skrip anda.
Jika terjadi false positive, anda bisa menggunakan method
isHam() selain
isSpam().
Selamat mencoba!