thund3r-x2 was here

Monday, August 1, 2011

Cara Baru update twitter via Terminal Linux

Pernah setahun lalu ada tutorial yang mengupdate twitter menggunakan curl. Kurang lebih caranya seperti ini..


$ curl -u username:password -d status="bla bla bla bla" http://twitter.com/statuses/update.xml


Right??? yup tapi ternyata waktu saya coba cara itu sudah tidak bisa digunakan lagi. Akhirnya saya coba untuk mengakali dengan cara baru..

Ide ini datang saat salah satu aktris Indonesia Marshanda yang pada twitternya mengumumkan, mengadakan lomba tercepat men-tweet tentang launchingnya official site barunya. mulai dari jam 00:00. Nah dari lomba itu saya terfikir untuk membuat schedule agar machine saya bisa tweet about it at the right time. Tapi failed.. kenapa? ngga keburu.. saya tau lomba jam 9 malam.. sedang saya harus ngakalin tweet juga..

Ok stop Curhat, coba ke materi.

Twitter sekarang sudah mempunyai site versi mobile. Nah twitter versi mobile itu yang akan kita gunakan.

pertama kita harus mengambil cookie dari hasil login kita. dengan cara


$ curl -b kue -c kue --data 'username=thund3r-x2' --data 'password=anypassword' https://mobile.twitter.com/session/


Dari situ nanti akan ada file baru bernama 'kue' yang berisi cookie kita yang baru.
file cookie ini akan kita gunakan untuk mengupdate status nantinya tapi ada satu variable lagi yang harus kita dapet.. nama variabel hidden yaitu authenticity_token. isi dari variable ini adalah kumpulan angka sebanyak 20 angka. Saya belum tahu bagaimana application mobile twitter mengenerate angka-angka ini. untuk mendapat kan token ini caranya


$ curl -b kue -c kue http://mobile.twitter.com | awk '/id=\"new_tweet/' | sed 's/[\"|<|\/>|div]//g' | cut -d"=" -f9


dari command itu akan dihasilkan token misal token yang didapat adalah 1e3a3b4c457781345123

sebelaum ke command selanjutnya saya akan jelaskan per pipe :=

- option -b/--cookie :: option ini menunjuk file yang berisi cookie yang akan POST ke server.

- option -c/--cookie-jar :: option ini akan mengambil cookie yang ada dan menuliskannya ke file yang kita pass di depan option ini.

- awk :: ini salah satu command linux untuk mengambil satu line yang di tandai oleh regex (regular expression) dimana pada command di atas saya mengambil satu line yang menggandung kata "id=new_tweet"

- sed :: command linux juga yang pada command diatas digunakan untuk mereplace. pada command diatas itu saya coba untuk mengghapus tanda kutip (") atau tanda tag (< || />) dan kata (div).

- cut :: cut ini adalah untuk membagi sebuah line ke dalam beberapa colomn berdasarkna dilimiter option yang kita masukan. Dimana saya disini menggunakan dilimiter "=" untuk memisahkan tiap kata/kalimat dan menggunakan option -f untuk mengambil column yang ke sekian untuk mendapatkan result yang kita inginkan.

Untuk lebih jelas command command linux tersebut bisa menggunakan Manual di linux sendiri.

Dari token yang kita dapat tersebut kita akan POST ke twitter diikuti dengan update status kita. seperti ini


$ curl -b kue -c kue --data 'authenticity_token=1e3a3b4c457781345123' --data 'tweet[text]=coba update via curl' http://mobile.twitter.com


setelah command di eksekusi. Curl akan mengirim dua variable itu ke twitter dan langsung mengupdate status, berdasarkan apa yang kita masukan ke variabel tweet[text]

silahkan check twitternya.
ini hanya proof of concept. masih bisa dikembangkan lebih lanjut lagi misal kita feed twitter dengan cara yang sama dan teknik lainnya.. tergantung kebutuhan..

0 comments:

Post a Comment