Belajar PHP: Menggunakan API Akismet untuk Mendeteksi Spam

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.

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

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!

2 thoughts on “Belajar PHP: Menggunakan API Akismet untuk Mendeteksi Spam

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: