Pada tutorial ini, kita akan mengupdate status twitter kita melalui 'Twitter API' menggunakan CodeIgniter. Saya rekomendasikan anda mengikuti langkah demi langkah sampai tutorial ini selesai...
1. Konfigurasi CodeIgniter
Pertama kali yang kita perlu edit adalah config.
Buka system/application/config/autoload.php, lalu edit lah baris :
$autoload['libraries'] = array('');
$autoload['libraries'] = array('database');
Sekarang bukalah config.php, Lalu rubahlah base_url untuk ci anda. Jadi didalamnya saya meletakkan folder system untuk ci saya. Ok. Saya rubah menjadi :
$config['base_url'] = "http://localhost/ci/twitter_api/";
CREATE TABLE IF NOT EXISTS `accounts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(120) NOT NULL, `password` varchar(32) NOT NULL, `active` int(11) NOT NULL, `last_message` varchar(140) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; INSERT INTO `accounts` (`id`, `username`, `password`, `active`, `last_message`) VALUES (1, 'username', 'password', 1, 'No message sent');
3. Membangun Model
Menuju system/application/model, lalu buatlah satu file twitter_model.php.
Pertama, kita akan mendeklarasikan 2 variabel :
var $accounts_table = 'accounts'; var $update_url = 'http://twitter.com/statuses/update.xml';
$accounts_table
merujuk pada tabel yang telah kita buat tadi, sedangkan $update_url
adalah alamat URL yang akan mengupdate status kita pada twitter. Jika twitter merubah URL tersebut, anda tinggal ganti saja $update_url
menjadi alamat yang bisa digunakan untuk mengupdate status anda ditwitter.class Twitter_model extends Model { // get the active twitter account from the database, by row active = function getActiveAccount() { return $this->db->get_where($this->accounts_table, array('active' => '1'))->row(); }
Langkah selanjutnya, kita akan membangun metode utama, Ini akan menggunakan username dan password, tentu saja dengan pesan yang akan kita gunakan untuk menjadi status kita.
// update status twitter function update_status($username, $password, $message) { $ch = curl_init($this->update_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'status='.urlencode($message)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // if we were successfull we need to update our last_message if ($httpcode == '200') { $this->db->where('active', '1'); $this->db->update($this->accounts_table, array('last_message' => $message)); return TRUE; } else { return FALSE; } }
Pada bagian bawahnya kita mengekusi transfer dengan curl_exec() dan mengambil HTTP_CODE yang dikembalikan menggunakan curl_getinfo(CURLINFO_HTTP_CODE). HTTP_CODE ini memberitahu kita jika status update kita sudah komplit atau kah belum. Kode '200' berarti berhasil dan update telah dilakukan. Anda bisa lihat list status HTTP yang lengkap disini.
Jika kita mendapatkan kode '200' dari Twitter, kita kirim query ke database kita dimana baris terakhir pesan kita telah terupdate, dan akhirnya kita kembalikan nilainya menjadi TRUE, jika 200 tidak ada, kita kembalikan nilainya menjadi FALSE.
Dalam akhir twitter_model ini, kita akan membuat metode terakhir yang mana, kita akan mendapatkan pesan terakhir yang kita kirim. Kita perlu membuat metode ini karena kita akan menampilkan pesan yang paling sering dibuat dalam satu view.
// get the last_message, by row active = 1 function getLastMessage() { $this->db->select('last_message'); $last_message = $this->db->get_where($this->accounts_table, array('active' => '1'))->row()->last_message; return htmlspecialchars($last_message); }
class Twitter_model extends Model { var $accounts_table = 'accounts'; var $update_url = 'http://twitter.com/statuses/update.xml'; // get the active twitter account from the database, by row active = 1 function getActiveAccount() { return $this->db->get_where($this->accounts_table, array('active' => '1'))->row(); } // update twitter status and last message on success function update_status($username, $password, $message) { $ch = curl_init($this->update_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'status='.urlencode($message)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // if we were successfull we need to update our last_message if ($httpcode == '200') { $this->db->where('active', '1'); $this->db->update($this->accounts_table, array('last_message' => $message)); return TRUE; } else { return FALSE; } } // get the last_message, by row active = 1 function getLastMessage() { $this->db->select('last_message'); $last_message = $this->db->get_where($this->accounts_table, array('active' => '1'))->row()->last_message; return htmlspecialchars($last_message); }
Attachment | Size |
---|---|
img1.jpg | 120.57 KB |
img2.jpg | 35.46 KB |
Comments
Re : CodeIgniter-Twitter Library
October 13, 2009 by muhginanjar, 1 year 26 weeks ago
Comment: 5667
Eh.... iya itu lebih banyak APInya....
tapi kan untuk pemula seperti saya, perlu tau dalemnya... kalo yang punya mas haughin itu kan tinggal pasang aja, lalu panggil dari model atau controller kita, nah, klo yang dari nettuts ini kan detail, sampai dikasih tau, fungsi-fungsi syntax phpnya.
'Ala Kulli Hal, bagus juga klo udah agak mahir pake librarynya twitter, tapi mungkin akan sedikit membantu klo kita belajar dari dasar banget....
Satuju?
-- mantanpenyamun --
CodeIgniter-Twitter Library
October 13, 2009 by sinaryuda, 1 year 26 weeks ago
Comment: 5664
Postingan yang menarik,
bagaimana dengan library yang ada di wiki codeigniter bikinan http://www.haughin.com/code/twitter/
munkin akan lebih banyak method API nya.
good
February 25, 2010 by ben33303, 1 year 6 weeks ago
Comment: 5970
good work /..lo make ini aja
di controller dooney and bourke handbag nya
$this->form_validation->set louis vuitton handbags_message('rule', 'Error Message');
ini tinggal lo gantinya di 'rule' => guess handbags lo isi rulenya apa
'error message' => lo isi dengan apa
contoh:
$this->form_validation-> fendi handbags set_message('required', 'Fill tidak boleh kosong');
controller dan view..,??
October 9, 2009 by cah_ajus, 1 year 26 weeks ago
Comment: 5657
saia sangat tertarik dengan postingan ini..,tapi saia masih bingung dalam menerapkannya maklum masih newbie...,hehehee
saia mau tanya tentang controller dan view-nya..,???koq ngk ada dibahas..,??itu ntr bgmn???bknnya pertama kali CI akan menunjuk controller terlebih dahulu???mohon bimbingannya.terima kasih.
Re:controller dan view..,??
October 10, 2009 by muhginanjar, 1 year 26 weeks ago
Comment: 5658
Iya nih... di bagian keduanya saya translate dulu dari net.tutsplus.com...
sori udah nunggu lama...
Thanks for Info
October 9, 2009 by herupermana, 1 year 26 weeks ago
Comment: 5656
Thanks infonya yang dah di sharring dan di translate dari
http://net.tutsplus.com/tutorials/php/how-to-update-your-twitter-status-...
Re : Thanks for Info
October 11, 2009 by muhginanjar, 1 year 26 weeks ago
Comment: 5659
Ih... bener banget mas heru, ana ambil dari tutorial di nettuts itu, lagian ah... daripada sepi dan iseng-iseng juga belajar menterjemahkan. jadi sekalian terjemahin, belajar CI juga. kan sekali dayung, satu samudra terlampaui..... :D makasih link nya...