Setelah sekian lama memikirkan cara bagaimana agar bisa terus update status tanpa online (secara fisik), akhirnya ketemu juga cara yang praktis.
Banyak referensi yang menyarankan memakai facebook API, tapi ternyata kurang praktis, berbelit2 dan “tidak bebas” ![]()
Akhirnya kupakai yang versi bikinan sendiri, lebih enak ngembanginnya pake perl.

Intinya, bot ini akan login ke facebook, lalu mengupdate status dengan isi random quote dari quotationspage, lalu akan “tidur” selama 300 detik, dan begitu seterusnya akan mengupdate lagi sampai botnya dimatikan.
Kode sumber dapat dilihat di sini.
Penampakan runningnya :

Selamat menikmati….. ![]()
(bagian ke dua akan menambah share link di FB kita).
pertamax diamanken…..
Komentar oleh bimatampan — Agustus 28, 2010 @ 10:23 am
weks, ngajarin ga bener nih..
*patut di coba! hehe. TQ atas share nya.
mo gw pelajarin, syukur2 bisa di modif..
ga gitu ngerti perl.
Komentar oleh banghasan — September 28, 2010 @ 12:27 pm
@bangtoyib :
silahken dimodif bang…..
ini ngajarin bener kok, biar pada “melek” kode….
Komentar oleh bimatampan — Oktober 5, 2010 @ 5:56 am
gan kodenya ditaruh mana ya?
ane nyubi nih yg bginian gan
Komentar oleh puguh — Oktober 8, 2010 @ 7:50 pm
@puguh :
dijalanken di command prompt atau shell brooo….
Komentar oleh bimatampan — Oktober 9, 2010 @ 4:50 pm
ooo iya2 thk gan nnti kpn2 dicoba…. bye
Komentar oleh puguh — Oktober 9, 2010 @ 5:34 pm
Gan.. Ane bisa minta tolong dikasih tau ga cara liat yang ngasih cendol? Agan pernah bikin kan ya? Keberatan ga kalo ngasih tau ane.. Thank you banget sebelumnya, gan..
Komentar oleh click2see — Oktober 16, 2010 @ 9:24 pm
@click2see :
di sini bro :
https://addons.mozilla.org/en-US/firefox/user/4953194/
Komentar oleh bimatampan — Desember 28, 2010 @ 9:00 am
gan ane udh add supaya yg kirim cendol keliatan, tapi yg keluar bukan berupa username nya gan tapi link, nah kalo ane mau keluar yang ussernamenya bijimane gan…..mohon pencerahannya….makasih
Komentar oleh Dicky — Februari 10, 2011 @ 5:18 pm
@Dicky :
pake punya bro idx :
http://userscripts.org/scripts/show/65502
tapi install greasemonkey dulu ya…..
Komentar oleh bimatampan — Februari 11, 2011 @ 3:26 am
itu langsung di copy paste langsung kah?
Komentar oleh kagara — Februari 26, 2011 @ 9:45 pm
om bima, script perl’a dah ga bsa dipake, error trus…pdhal sy sdh edit semua yg diminta. atau mngkin sy ada yg kurang? mohon di update info’a, thanks. btw great share
Komentar oleh wtff — Maret 13, 2011 @ 10:57 am
@kagara & @wtff :
ntar aku cek dulu bro
Komentar oleh bimatampan — Maret 13, 2011 @ 1:26 pm
ok, thanks om bima.
bookmarked & waiting for kindly reply :-p, cheerz
Komentar oleh wtff — Maret 14, 2011 @ 9:50 pm
gmana om bima, ada prkembangan?
Komentar oleh wtff — Maret 16, 2011 @ 2:03 pm
@wtff :
aku barusan nyoba skrip ini, dan sukses update status
mungkin bro wtff ada di belakang proxy ?
Komentar oleh bimatampan — Maret 16, 2011 @ 6:37 pm
// trima kasih sdh di reply.
tidak om, sy tidak pake proxy
. berikut scrinsut error’a :
[IMG]http://i53.tinypic.com/2yzn7o1.png[/IMG]
oia sy liat teks “result: Not running” di halaman webpage (bawah kiri)–> http://ideone.com/tf2CG
// mohon petunjuk’a om (maaf sy sdh merepotkan)
Komentar oleh wtff — Maret 17, 2011 @ 1:07 am
@wtff :
itu loginnya sudah berhasil,
tapi gak tau kenapa tuh kok gagal, mungkin itu profile ID orang lain (bukan milik kita atau friend kita)
lha wong aku nulis di wall friend bisa kok pake skrip itu
Komentar oleh bimatampan — Maret 17, 2011 @ 2:02 am
sy pake profile sendiri om
bukan pnya orang lain. (sy kan coba pke account yg lain).
baiklah om bima seperti’a sy harus cari solusi’a sendiri
if( $rcvd =~ /Undefined variable:/ ) {
@error = ($rcvd =~ m#\s+in\s+(.*?)${error}wtff/lang/perl.php#);
print “\n\tFound error:\t $error[-1]\n”;
} else {
print “\n\tKeep trying….\n”;
}
terima kasih sudah mau berbagi.
sampai jumpa om bima // p3a(3
salam
wtff a.k.a batara a.k.a r41nnu|<e
Komentar oleh wtff — Maret 17, 2011 @ 11:44 am
oke om Bima, sy sdh coba pake ID yg lain, ternyata TIDAK ADA MASALAH pd script’a & BERHASIL update status
.
Error sebelum’a terjadi secara sy setting privacy terlalu tinggi,hehehehe :p
thanks
Komentar oleh wtff — Maret 17, 2011 @ 4:35 pm
@wtff :
nah lo kan….
Komentar oleh bimatampan — Maret 17, 2011 @ 4:56 pm
buatin bot untuk kaskus dong
Komentar oleh halo — Maret 21, 2011 @ 6:17 pm
@halo :
berani bayar berapa juta ?
Komentar oleh bimatampan — Maret 21, 2011 @ 8:53 pm
Bozz knapa ga pake Getopt::Long , so ga perlu hard code buat ganti username, pw etc
Regards
Komentar oleh quite_monk — Maret 24, 2011 @ 7:47 pm
@quite_monk :
silahken source codes nya dirubah2 bro
asal tetep kasih credits ya………..
Komentar oleh bimatampan — Maret 24, 2011 @ 8:29 pm
hehe siap, bole post code sendiri ga? sebagai bahan perbandingan aja
sapa tau makin banyak yang tertarik migrasi ke perl
Komentar oleh quite_monk — Maret 26, 2011 @ 4:38 am
@quite_monk :
silahken brooo……
Komentar oleh bimatampan — Maret 26, 2011 @ 7:13 am
#!/usr/bin/perl
use 5.010;
use warnings;
use strict;
use WWW::Mechanize;
use HTML::TreeBuilder;
my $base = ‘http://www.facebook.com/’;
my $url_quote = ‘http://www.quotationspage.com/random.php3′;
my $agent = WWW::Mechanize->new();
$agent->add_header( “User-Agent” => ‘Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20110103 Fedora/3.6.13-1.fc14 Firefox/3.6.13′);
$agent->add_header( “Accept” => ‘text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8′);
$agent->add_header( “Referer” => ‘http://www.facebook.com/’);
#get quotations word’s from the quotations webpage
$agent->get($url_quote);
my $status = _get_quote($agent->content);
#connect to fb
$agent->get($base);
#login to fb
say “loging in …!”;
my $login = _do_login();
#if login success post the quotations word’s!
if($login){
say “We’re in!.. starting changing the status ..”;
#parse the home page and get the form id and fb dtsg
my $form_id = _get_post_form_id($agent->content);
my $fb_dtsg = _get_fb_dtsg($agent->content);
_status($form_id, $fb_dtsg);
say “your status now ‘$status’”;
say “sleep for 5 minutes!”;
sleep 300;
}
sub _get_quote{
my $string = shift;
my $node = HTML::TreeBuilder->new();
$node->parse($string);
#parse the content
my $quote = $node->find_by_attribute( class => ‘quote’ )->as_text;
my $authors = $node->find_by_attribute( class => ‘author’ );
$author = ‘Unknown’ unless $authors;
my $author = $authors->look_down( _tag => ‘b’)->as_text;
my $status = “$quote by : $author”;
$node->delete;
return ($status);
}
sub _do_login {
$agent->post(
‘https://www.facebook.com/login.php?login_attempt=1′,
Content => {
‘email’ => ‘bijaksana.sekali@gmail.com’,
‘pass’ => ‘sandradewi!’,
}
);
if($agent->content =~ /(Email Salah)/ ) {
say “Email salah !”;
return 0;
}elsif($agent->content =~ /(Silakan masukkan kembali sandi Anda)/){
say “Password salah, $1!”;
return 0;
}
return 1;
}
sub _status{
my($form_id, $fb_dtsg) = @_;
#post the status
$agent->post(
‘http://www.facebook.com/ajax/updatestatus.php?__a=1 ‘,
Content => {
‘post_form_id’ => $form_id,
‘fb_dtsg’ => $fb_dtsg,
‘status’ => $status,
‘post_form_id_source’ => ‘AsyncRequest’,
}
);
}
sub _get_post_form_id {
my $string = shift;
my $node = HTML::TreeBuilder->new();
$node->parse($string);
my $id = $node->find_by_attribute( name => ‘post_form_id’)->attr(‘value’);
$node->delete;
return $id;
}
sub _get_fb_dtsg {
my $string = shift;
my $node = HTML::TreeBuilder->new();
$node->parse($string);
my $id = $node->find_by_attribute( name => ‘fb_dtsg’)->attr(‘value’);
$node->delete;
return $id;
}
Komentar oleh quite_monk — Maret 26, 2011 @ 7:46 am
hihi lupa username & pw na ke bawa :”>, that’s so lame hihi,
tolong di hapus username ama pw nya bro
Komentar oleh quite_monk — Maret 26, 2011 @ 7:49 am
@quite_monk :
ternyata bro ini odesk contractor juga ya…….. wkwkwkwkwkkwkkk………
salam contractor bro……
Komentar oleh bimatampan — Maret 26, 2011 @ 9:37 am
hihi iya boss, ko tau?
Komentar oleh quite_monk — Maret 26, 2011 @ 9:47 am
aku ko ga liat ya contractors yang namanya bima?
Komentar oleh quite_monk — Maret 26, 2011 @ 9:55 am
@quite_monk :
wkwkkwkkwkwkwkkkk…..
BTW, pake sapidi ya bro, paket apa bro ? kenceng gak ?
Komentar oleh bimatampan — Maret 26, 2011 @ 10:14 am
paket family, bozz, mayan Line Rate – Downstream (Kbps):448, tapi uploadnya haduhhh Line Rate – Upstream (Kbps):123, upload 1 mega butuh 3-5 menit
Komentar oleh quite_monk — Maret 26, 2011 @ 6:20 pm
@quite_monk :
kalau quota habis, jadinya lambat kayak keong apa lumayan cepet bro ?
Komentar oleh bimatampan — Maret 26, 2011 @ 6:50 pm
skarang kayanya ga ada kuota, klo donlot tetep di atas 30Kbps pernah donlot fc11 4 giga lbih butuh 30 jam
saran aja bro buat title nya ni page http://id.wikipedia.org/wiki/Perl
Komentar oleh quite_monk — Maret 26, 2011 @ 8:38 pm
wah bagus artikelnya mas..
kapan fb bot 2 nya nih..
oia nanya kl buat reminder adzan juga bisa yah ?
jadi muncul di distatus pas jam nya..
thx
Komentar oleh aziz — April 27, 2011 @ 12:51 pm
@aziz :
bisa bro, tinggal utek2 dikit tuh….
Komentar oleh bimatampan — April 27, 2011 @ 8:29 pm
ini buat’y pke visual basic ya om
Komentar oleh washere — Agustus 22, 2011 @ 5:00 pm
@washere :
pake perl gan
Komentar oleh bimatampan — Agustus 23, 2011 @ 12:44 am
@bimatampan perl th apa om
tolong di jelaskan secara detail
maaf newbie
Komentar oleh washere — Agustus 23, 2011 @ 3:13 pm
@washere :
perl itu interpreter spt python & php bro
Komentar oleh bimatampan — Agustus 23, 2011 @ 3:17 pm
@bimatampan ane pnya cpanel d stu da derictory perl,pa th juga perl,n bsa d pke untuk ini ga?
Komentar oleh washere — Agustus 24, 2011 @ 10:50 am
@bima tampan:
gan ajarin w dong
bener” ga ngerti nih
Komentar oleh washere — Agustus 31, 2011 @ 7:13 pm
@washere :
sebaiknya pakai yg command line bro,
ini petunjuknya :
http://bimatampan.wordpress.com/2009/01/11/petunjuk-pemakaian-skrip-perl/
Komentar oleh bimatampan — Agustus 31, 2011 @ 9:00 pm
@bimatampan
gan th yg tulisan mrah smua’y di edit ya
Komentar oleh washere — September 2, 2011 @ 3:06 pm
@washere :
yg mana bro ?
Komentar oleh bimatampan — September 2, 2011 @ 5:25 pm
@bima
yg ini gan
my @waktu = localtime(time);
$browser->cookie_jar(HTTP::Cookies->new(file => “./log/lwpcookies_update_fb.txt”, autosave => 1));
my $log = ‘./log/update_fb_’.$waktu[3].($waktu[4]+1).($waktu[5]+1900).’-’.$waktu[2].’-’.$waktu[1].’-’.$waktu[0].’.txt’;
Komentar oleh washere — September 4, 2011 @ 11:25 am
@washere :
yg merah2 biarken aja
yg diedit :
- $user
- $password
- $profile_id
BTW, ini jalan di linux, gak tau kalau di windus jalan pa kagak
Komentar oleh bimatampan — September 5, 2011 @ 4:16 am
@bima
pantesan,w coba” kga bsa
Komentar oleh washere — September 5, 2011 @ 10:45 am
gan , ane jalanin di perl kok gk bisa gan :bingungs:
Komentar oleh Arpheoulus™Elderar — September 11, 2011 @ 3:37 pm
gan bsa liat contoh yang dah jadi ga?
mo d bedain yg mana yg harus di edit
Komentar oleh was here — September 23, 2011 @ 2:30 pm
good gan.. coba aja ada yang visual basic yah..
Komentar oleh Fairuz — Oktober 16, 2011 @ 3:27 pm
wah ane jadi tambah ngerti neh, meskipun dikit2. thanks sharingnya bro…
Komentar oleh adipa — Februari 7, 2012 @ 8:30 am