Twitter-bot, iseng-iseng ah xD

Pernah nggak pas kalian nulis di Twitter trus ada orang yang nggak dikenal nge-Retweet tweet kalian? Bukan sekedar RT biasa, tetapi lebih seperti RT yang pintar, seperti RT otomatis yang dikendaliin bot? Saya sih pernah, coba aja di post di twitter trus masukin salah satu kata “eaaa”, “asu”, atau coba mention @tiesto, kalau kalian beruntung (?) nanti akan ada id yang namanya “Kingdom of eaaa”, “Kingdom of asu”, sama “RT Tiesto” yang secara ajaib nge-RT tweet kalian atau coba post tweet apapun yang mention @tiesto di dalamnya, setidaknya saya udah pernah nemuin beberapa twitter bot seperti diatas, toh saya yakin masih banyak twitter bot yang ada disana.

Ah iya, sebelum lanjut, kita perlu tahu dulu sedikit definisi dari fitur yang akan kita gunakan.

Cron : A daemon for UNIX and UNIX−compatible operating systems which executes commands and processes at arbitrary times specified by a user or application. From Redhat−9−Glossary http://www.tldp.org/LDP/Linux−Dictionary/html/index.html

Yup, disini kita gunakan fitur cron, fitur simpel yang ada di hampir semua UNIX-compatible system.

Salah satu fitur lain yang kita gunakan adalah fitur dari Twitter, dalam Twitter kita dengan mudah melakukan pencarian dengan keyword tertentu, pencarian ini dilakukan secara real-time dan hasilnya ditampilkan langsung ke user, kita juga dapat melakukan pencarian dan meminta hasilnya dalam format XML, yang nantinya bisa kita gunakan dalam program yang kita buat.

Oh iya! script yang kita buat ini pake bahasa PHP, jadi butuh webhosting yang support PHP tentunya.

Jadi total kita perlu account Twitter, dan webhosting yang support PHP dan cron.

Langsung lihat source-codenya yok 🙂


<?php
// username dan password *jelas* xD
$user = 'user';
$pass = 'password';

// lakukan pencarian realtime dengan kata kunci "keyword", simpan hasilnya sebagai format XML
$search = "http://search.twitter.com/search.atom?q=keyword";
$xml_source = file_get_contents($search);
$x = simplexml_load_string($xml_source);

foreach($x->entry as $item){

   // siapkan apa yang mau di-RT
   $author_name = $item->author->name;
   list($name, $mbuh) = explode (" ",$author_name);
   $author = trim($name);
   $msg = 'RT @'.$author. ': ' .$item->title;

   // siapkan HTTP-header yang akan ditulis
   $out = "POST http://twitter.com/statuses/update.json HTTP/1.1\r\n"
   ."Host: twitter.com\r\n"
   ."Authorization: Basic ".base64_encode ($user.':'.$pass)."\r\n"
   ."Content-type: application/x-www-form-urlencoded\r\n"
   ."Content-length: ".strlen ("status=$msg")."\r\n"
   ."Connection: Close\r\n\r\n"
   ."status=$msg";

   // tulis ke twitter.com port 80
   $fp = fsockopen ('twitter.com', 80);
   fwrite ($fp, $out);
   fclose ($fp);
}
?>

Penjelasan kode (PHPdoc) sebagian udah ada di source-codenya langsung.

Coba upload, jalanin di webbrowser, jrengjreng, sukses deh, setting cron buat otomatisasi eksekusi, jadilah sebuah bot sederhana 🙂

Ehm, jujur saya nggak begitu bisa php xD tapi ide dari kode ini dapet dikit-dikit lah idenya.

Btw, tiap account Twitter punya limit berapa kali bisa update dalam tiap jammnya, bot ini juga termasuk, jadi kalau anda coba pake keyword yang umum dipake, plus interval waktu cron yang singkat (1 menit misalnya) maka script ini tidak akan berjalan dengan semestinya.

TODO-NEXT :

  • Bikin script buat update status Twitter otomatis
  • Bikin script buat Plurk-bot (Ya! Plurk! lagi coba-coba pahamin APInya juga nih xD)

Credit goes to : http://sandalian.com/php/auto-retweet-bot-for-twitter.html (saya telan mentah-mentah ini sourcenya xD)

//17 September 2010, tambahan :

Terhitung sejak 31 Agustus 2010 Twitter hanya mengijinkan methode OAuth untuk mengakses APInya, jadi cara ini sudah tidak bisa dipakai 😀

(http://groups.google.com/group/twitter-api-announce/browse_thread/thread/c03fa2b1ae90d2a9)

8 thoughts on “Twitter-bot, iseng-iseng ah xD

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s