Zend Framework : Zend_Oauth and Zend_Service_Twitter – Access Your Twitter Application
Oauth, adalah sebuah protokol terbuka yang memungkinkan pengguna berbagi sumber pribadi yang disimpan di situs web dengan situs lain tanpa perlu menyerahkan username dan kata sandi. Proses ini diberikan dengan memberikan token. Setiap token memberikan akses spesifik terhadap resource spesifik.
Zend Framework mempunyai komponen hebat, bernama Zend_Oauth yang bisa digunakan sebagai consumer untuk me-request token yang dibutuhkan dengan passing konfigurasi callbackUrl, siteUrl, consumerKey, dan consumerSecret.
Yang Bisa dilihat seperti di bawah ini :
$config = array( 'callbackUrl' => 'http://example.com/callback.php', 'siteUrl' => 'http://site.com/oauth', 'consumerKey' => '420e2a1aa3880887a06f3fe904f09569', 'consumerSecret' => '8a162e8bc5b9af11e08699ae36ee420e2a1aa3817f' ); $consumer = new Zend_Oauth_Consumer($config);
Yang dibutuhkan dalam Protokol Oauth, adalah Access Token, maka dari itu, Request token yang kita dapatkan dari object $consumer kita gunakan untuk mendapatkan access token. Okey…, kali ini, saya akan coba demo-kan penggunaan Zend_Oauth dan Zend_Service_Twitter yang ber-simbiosis komensalisme untuk mengakses Twitter Data dari aplikasi yang kita buat.
Pertama, kita daftarkan aplikasi kita di twitter di sini. Setelah kita mendaftarkan aplikasi kita, kita akan mendapatkan ConsumerKey, ConsumerSecret, AccessToken, dan Access Token Secret kita sebagai pembuat aplikasi, seperti gambar berikut :
Ingat, Access token yang telah diberikan ini adalah milik kita, si pembuat aplikasi, jika kita ingin agar aplikasi yang kita buat ini bisa dipakai oleh publik, maka kita harus request token access sebagai persetujuan akses aplikasi kita.
Nah, sekarang kita siapkan hal-hal yang dibutuhkan.
1. config.php ~ file konfigurasi
$config = array( //callback di website kita yang kita daftarkan pada saat membuat aplikasi di twitter 'callbackUrl' => 'http://example.com/callback.php', //url oauth twitter punya 'siteUrl' => 'http://twitter.com/oauth', //ini hanya consumerKey permisalan 'consumerKey' => '420e2a1aa3880887a06f3fe904f09569', //ini hanya consumerSecret permisalan 'consumerSecret' => '8a162e8bc5b9af11e08699ae36ee420e2a1aa3817f' );
2. common.php ~ variable yang dibutuhkan di tiap halaman
session_start(); require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); include './config.php'; $consumer = new Zend_Oauth_Consumer($config);
3. callback.php ~ authentication Callback
include_once './common.php'; if (!empty($_GET) && isset($_SESSION['TWITTER_REQUEST_TOKEN'])) { if ( empty($_GET['denied']) && !empty($_GET['oauth_token']) && !empty($_GET['oauth_verifier']) ){ $token = $consumer->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN'])); //akses token didapatkan $_SESSION['TWITTER_ACCESS_TOKEN'] = serialize($token); //you can save the access token in database if needed 😉 //unset request token $_SESSION['TWITTER_REQUEST_TOKEN'] = null; //redirect to application... header('location:./index.php'); } else { echo 'you denied the application'; } }else{ exit('Invalid callback request. Oops. Sorry.'); }
4. index.php ~ the application page 😉
include_once './common.php'; // Do we already have a valid Access Token or need to go get one? if (!isset($_SESSION['TWITTER_ACCESS_TOKEN'])) { // Guess we need to go get one! $token = $consumer->getRequestToken(); $_SESSION['TWITTER_REQUEST_TOKEN'] = serialize($token); // Now redirect user to Twitter site so they can log in and // approve our access $consumer->redirect(); } else { $token = unserialize($_SESSION['TWITTER_ACCESS_TOKEN']); $twitter = new Zend_Service_Twitter(array( 'consumerKey' => $config['consumerKey'], 'consumerSecret' => $config['consumerSecret'], 'accessToken' => unserialize($_SESSION['TWITTER_ACCESS_TOKEN']) )); //test update status $response = $twitter->status->update('ini test update status cuy ;)'); }
Image :
http://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/Oauth_logo.svg/220px-Oauth_logo.svg.png
Referensi :
http://www.joeyrivera.com/2010/twitter-api-oauth-authentication-and-zend_oauth-tutorial/
http://framework.zend.com/manual/en/zend.oauth.introduction.html
http://framework.zend.com/manual/en/zend.service.twitter.html
Bos, mau nanya, pernah nyoba ga bikin stored procedure di mysql, ttg cursor yang table_name nya itu dinamycs? thx…
khusus untuk tablename, di MySQL setahu saya tdk bisa dijadikan parameter dalam stored procedure, demikian 🙂
oraclear clear …. iso iks san, tapi nek neng mysql ra mudeng aku …. 😀
Piye kabarmu, salam sukses ae ….
hoho, Alhamdulillah sae, piye tugas akhire wis rampung rung ? hehehe, yo podho2, salam sukses selalu 😉
Alhamdulillah, kantun refisi kata-kata + sertifikasi OCP…..
Ojo legan terus, duite entek mengko. wkwkwk. Ok salam sukses ….
Siiip