Membuat Facebook SDK menjadi Component Yii
July 2nd, 2012, Written by: | Categories: Programming, Tutorial, Yii Framework

Bagi yang sering mengembangkan aplikasi Facebook, atau Web yang perlu berinteraksi dengan Facebook tentunya sudah tidak asing dengan namanya Facebook SDK bukan? Nah, apakah Anda sudah mengetahui cara supaya Facebook SDK menyatu dengan mulus ke dalam projek Yii?

Sebetulnya untuk bisa berhubungan dan berinteraksi dengan Facebook, kita tidak perlu menggunakan Facebook SDK. Tetapi tentu saja adanya SDK ini akan memudahkan programmer untuk melakukan pekerjaannya.

Satu hal yang membuat Facebook SDK versi PHP gampang diintegrasikan ke dalam Yii adalah fakta SDK itu sudah dalam bentuk object oriented. Anda bisa men-download-nya di situs Github Facebook SDK untuk PHP. Walaupun Facebook SDK sudah dalam bentuk Object Oriented, tetapi jika kita ingin membuat objek PHP SDK itu menjadi application components (komponen aplikasi), tidaklah bisa langsung. Yang dimaksud dengan aplikasi komponen adalah komponen yang dideklarasi di bagian konfigurasi Yii. Contohnya seperti ‘db‘ atau ‘log‘ di file webroot/protected/config/main.php.

Solusinya cukup sederhana. Penulis menggunakan pendekatan salah satu Yii developer bernama twisted1919 di forum Yii.

1. Download Facebook SDK versi PHP dan pasang ke Yii

Download Facebook SDK terlebih dahulu. Kemudian ambil folder “sdk” dan pasang di folder webroot/protected/components.

2. Pasang file wrapper

Kita perlu sebuah “pembungkus” yang memungkinkan Facebook SDK kita ini menjadi component dalam Yii. Mari kita namakan component yang kita buat ini dengan nama FacebookCore.php. Buatlah file ini di dalam folder webroot/protected/components/sdk.

Jika sudah dibuat maka copy paste coding berikut:

<?php
class FacebookCore extends CApplicationComponent {
        protected $_appId;
        protected $_appSecret;
        protected $_facebook;

        public function init()
        {
                parent::init();
        }

        public function getFacebook()
        {
                if($this->_facebook!==null)
                        return $this->_facebook;

                Yii::import('application.components.sdk.Facebook');
                $this->_facebook=new Facebook(array(
                        'appId'=>$this->getAppId(),
                        'secret'=>$this->getAppSecret(),
            'cookie'=>true,
                ));

                return $this->_facebook;
        }

        public function setAppId($str)
        {
                $this->_appId=$str;
        }

        public function getAppId()
        {
                return $this->_appId;
        }

        public function setAppSecret($str)
        {
                $this->_appSecret=$str;
        }

        public function getAppSecret()
        {
                return $this->_appSecret;
        }

        /* Dengan memanfaatkan __call, kita bisa meminta kelas untuk mencari fungsi yang ada di kelas Facebook SDK. Jadi, konsepnya mirip dengan inheritance*/
        public function __call($method, $args)
        {
                $facebook=$this->getFacebook();

                if(method_exists($facebook, $method))
                {
                        return call_user_func_array(array($facebook, $method), $args);
                }
        }

}

3. Konfigurasikan di Yii

Sekarang saatnya kita tambahkan komponen Facebook di file konfigurasi. Bukalah file webroot/protected/config/main.php. Kemudian di bagian konfigurasi tambahkan koding berikut:

return array(
...
'components'=>array(
		'facebook'=>array(
			'class'=>'application.components.sdk.FacebookCore',
			'appId'=>'xxxxxxxxxxxx',
			'appSecret'=> 'yyyyyyyyyyyyyyyyy'
		),
                ...
),
...
);

Untuk appId dan appSecret, isilah sesuai Facebook App yang sudah Anda buat.

Nah selesai sudah. Kita sekarang sudah bisa menggunakan aplikasi. Contoh penggunaanya seperti:

//Catatan: fungsi ini hanya berjalan kalau sudah otentikasi user
$user = Yii::app()->facebook->getUser();
$data = Yii::app()->facebook->api('/me');

Fungsi di atas tentu saja hanya berjalan kalau user Anda sudah melakukan otentikasi Facebook. Tetapi penulis berharap pembaca menangkap maksud yang ingin disampaikan. Jadi, dengan membuatnya menjadi komponen, maka kita bisa mengakses Facebook SDK semudah mengakses komponen Yii pada umumnya. Sederhana bukan?

More about: , ,

2 Responses to “Membuat Facebook SDK menjadi Component Yii”

Leave a Reply to Membuat Facebook SDK menjadi Component Yii

Click here to cancel reply.