Bot Chat Facebook (JAXL)

Yang sering chatting di IRC pasti tau apa itu bot. Tapi buat yang belum tau, "bot" itu asalnya dari kata "robot". Jadi bot itu semacam mesin penjawab otomatis. Kalo di dunia ponsel, dia dikenal sebagai "T3LK0MS3L VERONICA" (tapi sekarang udah ga pernah denger lagi suaranya, si Veronica udah dipecat kali yah? :D). Kalo di IRC biasanya jadi Game Scramle, semacam acak kata gitu. Atau kalo untuk sisi gelapnya sebagai inviter, spammer, ato semacamnya.

Awalnya sih emang gara-gara yoos sampe sekarang ini masih seneng main game scramble di IRC. Jadi sambil main game, ngelatih kecepatan ngetik juga. Ga kayak game di FB yang cuma klik ini klik itu :p. Nah dari situ belajar buat bot deh di IRC. Ga lama jadi kepikiran kenapa ga buat di chat FB juga. Trus nanya Mbah Google deh...

Dari Mbah dapetnya applikasi JAXL ini. JAXL sebenernya bukan cuma buat chat facebook, tapi juga bisa buat gtalk, pokoknya chat yang menggunakan tekhnologi JABBER (XMPP). Facebook sendiri baru menggunakan tekhnologi ini kalo ga salah pada Februari 2010 (correct me if i'm wrong).

Udah cukup cuap-cuap nya, sekarang kita coba bagaimana menggunakan JAXL ini. Oh iya hampir lupa, sampai postingan ini dibuat, JAXL untuk sementara ini hanya bisa diinstall di *NIX / Linux System (correct me lagi jika i'm wrong). Dari situs pengembangnya sih saya baca seperti itu, soalnya belum ada posting tentang menginstall JAXL di Windows. Kata pengembangnya sih dia sudah coba menjalankannya di Windows (menggunakan 3rd party software tapi saya lupa namanya apa), tapi belum dijelaskan caranya bagaimana. Jadi yang menggunakan Windows OS harap sabar :p, atau beralih aja ke Linux hehe...

Yoos menjalankan JAXL ini menggunakan UBUNTU 10.04 (kemarin install yg 10.10 tapi gara2 unity side barnya bikin layar 10' hp miniku jadi 8' jadi di uninstall lagi). Yang menggunakan distro lain di adaptasikan aja perintah2nya. Untuk JAXL-nya saya menggunakan versi 2.1.1.

Let's begin the process....


INSTALL JAXL

Download dulu tarball jaxl di http://code.google.com/p/jaxl/

Jaxl membutuhkan php jadi perlu diinstall terlebih dahulu dengan mengetikkan di terminal :
sudo apt-get install php5-cli


Extract tarball jaxl di home kemudian ganti direktori terminal dengan perintah :
cd jaxl

(jika folder hasil extract menggunakan nama lain, rename terlebih dahulu menjadi jaxl)

Install jaxl dengan perintah dibawah ini :
sudo mkdir /usr/share/php/jaxl
sudo ./build.sh
sudo ./build.sh install
sudo touch /var/log/jaxl.log
sudo chown www-data /var/log/jaxl.log
sudo touch /var/run/jaxl.pid
sudo chown www-data /var/run/jaxl.pid


Kemudian ketikkan perintah :
jaxl

Jika muncul pesan "Missing ini file" berarti proses installasi berhasil


MENJALANKAN JAXL

Sekarang kita coba koneksi jaxl dengan chat facebook.

Edit file "/usr/share/php/jaxl/app/echobot/jaxl.ini" dengan perintah :
gedit /usr/share/php/jaxl/app/echobot/jaxl.ini


Pada file jaxl.ini ganti parameter berikut :
    // Connecting user credentials
define('JAXL_USER_NAME', 'user'); //nama user facebook. Contoh url profile "yoos yoes" adalah "http://www.facebook.com/yoosyoes" maka kita masukkan user "yoosyoes"
define('JAXL_USER_PASS', 'pass'); //pass = password facebook

// Connecting jabber server details
define('JAXL_HOST_NAME', 'localhost'); //ganti localhost menjadi 'chat.facebook.com'
define('JAXL_HOST_PORT', 5222);
define('JAXL_HOST_DOMAIN', 'localhost'); //ganti localhost menjadi 'chat.facebook.com'


Setelah itu save file jaxl.ini kemudian tutup window gedit.

Kembali ke terminal ganti direktori ke /usr/share/php/jaxl/app/echobot/ dengan perintah :
cd /usr/share/php/jaxl/app/echobot/


Kemudian jalankan jaxl dengan perintah :
sudo jaxl echobot.php


jika muncul pesan seperti ini pada terminal
[3239] 2010-12-30 04:08:03 - Registering shutdown for SIGH Terms ...
[3239] 2010-12-30 04:08:03 - Openssl enabled ...
[3239] 2010-12-30 04:08:04 - Socket opened to the jabber host chat.facebook.com:5222 ...
[3239] 2010-12-30 04:08:05 - Performing Auth type: DIGEST-MD5
[3239] 2010-12-30 04:08:11 - Auth completed...

berarti proses autentikasi selesai

Coba bot jaxl dengan chat ke profile facebook tersebut, jika ada balasan, berarti kita sudah berhasil menjalankan echobot jaxl.

Oh iya pada saat pertama kali saya jalankan jaxl, autentikasi nya tidak berhasil dan muncul pesan error tapi lupa pesannya kayak gimana, yang jelas ada pemberitahuan error nya pada proses log. Jika terjadi seperti itu pada jaxl.ini diatas ubah parameter dibawah ini:
define('JAXL_LOG_PATH', '/var/log/jaxl.log');
define('JAXL_LOG_EVENT', true); //Ubah true menjadi false
define('JAXL_LOG_LEVEL', 4); //Atau ubah angka 4 menjadi 0
define('JAXL_LOG_ROTATE', false);

Dengan mengubah parameter tersebut maka event log tidak tercatat pada file '/var/log/jaxl.log/'.


CUSTOMIZE ECHOBOT JAXL

Sekarang kita coba ubah balasan chat bot kita

Edit file "/usr/share/php/jaxl/app/echobot/echobot.php" dengan perintah
gedit /usr/share/php/jaxl/app/echobot/echobot.php


Kemudian cari parameter dibawah ini:
$jaxl->sendMessage($payload['from'], $payload['body']);


Ganti dengan :
$jaxl->sendMessage($payload['from'], "Maaf saya sedang keluar silahkan tinggalkan pesan di dinding profile saya!!!");


Maka setelah diganti setiap chat akan dibalas dengan :
"Maaf saya sedang keluar silahkan tinggalkan pesan di dinding profile saya!!!"

Sekarang tinggal dikembangkan aja. Kalo mau bisa dengan menggunakan kata2nya si VERONICA biar dia kenal facebook juga, bukan cuma tau nelfon doang hehe... Atau dengan belajar sedikit tentang pemrograman PHP bisa dikembangkan lagi jadi game scramble di facebook (scramble lover mode on :D).

Buat yang mau nyobain hasilnya kayak gimana, chat aja langsung di profile fb yoos. Nanti akan dijawab dengan bot yang namanya yoosie, tapi bot nya belum terlalu perfect, kosakatanya masih kurang. Profile yoos di facebook.com/yoosyoes
CU!!!

Update 2 April 2011
Bot yoosie, yoos pindahin di facebook.com/yoosieyoes

###YOOS###
Oh iya hampir lupa, sumbernya dari "http://code.google.com/p/jaxl/" dan juga dari blog pengembangnya di "http://abhinavsingh.com/".


Related Posts



1 comments:

Post a Comment