Permasalahan Facebook PHP SDK di CodeIgniter

Bagi yang terbiasa menggunakan framework CodeIgniter dan sedang mulai coba bikin Facebook Apps dengan menggunakan Facebook PHP SDK biasanya akan mengalami masalah dengan security system di CodeIgniter. Semoga penjelasan berikut ini bisa membantu yang juga sedang mengalami masalah dengan Facebook PHP SDK + CodeIgniter.

CodeIgniter menghapus isi predefined variable $_REQUEST dengan alasan keamanan. Celakanya variable tersebut digunakan secara intensif dalam Facebook PHP SDK. Jadi harus dilakukan sedikit tweak supaya Facebook PHP SDK bisa akur dengan CodeIgniter. Catatan, code berikut merupakan potongan class construction dari controller.

function __construct() {
parent::__construct();
$this->referer = $this->input->server('HTTP_REFERER');
// Stop cache
	    $this->output->set_header("Cache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
	    $this->output->set_header("Pragma: no-cache");
// IE Fix
	    if(strpos($this->agent->agent_string(), 'MSIE') !== FALSE) {
	        $this->output->set_header('p3p: CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"');
	    }
// Repopulate _REQUEST ... Facebook needs it.
	    $request_uri = $_SERVER['REQUEST_URI'];
	    $request_uri = explode('?',$request_uri);
	    if(count($request_uri) > 1) {
	        parse_str($request_uri[1], $_REQUEST);
	    }
// load Facebook SDK library
        $this->load->library('Facebook', array(
            'appId' => YOUR_APP_ID,
            'secret' => YOUR_APP_SECRET,
            'fileUpload' => false,
            'cookie' => true
        ));
//get fb user_id
        try {
            $this->signed_request = $this->facebook->getSignedRequest();
            $this->fb_id = $this->facebook->getUser();
	    $me = $this->facebook->api('/'.$this->fb_id);
            $this->access_token = $this->facebook->getAccessToken();
        } catch(FacebookApiException $e) {
            log_message('error', 'Failed getting Facebook ID. '.$e->getMessage());
        }        		
    }
Semoga trik diatas bisa membantu mengatasi permasalahan Facebook PHP SDK + CodeIgniter. Punya hasil yang berbeda? Silahkan tulis di komentar.

Leave a Reply

Your email address will not be published. Required fields are marked *