Instalasi Facebook API pada Codeigniter

Untuk menyambungkan website kita dengan Facebook base Codeigniter dapat kita lakukan dengan beberapa proses sederhana. Saya coba jelaskan pada artikel ini, semoga dapat dijadikan acuan terutama bagi saya dan teman-teman yang ingin menyambungkan website dengan Facebook yang biasa dikenal API Facebook.

Sebelumnya kita harus mendaftarkan aplikasi terlebih dahulu pada Facebook. Setelah kita mendaftarkan aplikasi pada facebook, kita akan mendapatkan appID dan appSecret. Saya tidak akan menjelaskan detail cara mendaftarkan aplikasi pada Facebook, silahkan searching pada om google.

Langkah Pertama
Buat file dalam folder config dengan nama facebook.php, isikan code dibawah ini :

1
2
3
4
5
<?php
   $config['facebook']['appId'] = "xxxxxxxxx"; // APP ID FROM FACEBOOK
   $config['facebook']['secret'] = "xxxxxxxxxxx"; // APP SECRET FROM FACEBOOK
   $config['facebook']['cookie'] = TRUE;
?>


Klik Gambar untuk diperbesar

Langkah Kedua
Download PHP SDK Facebook, lalu ambil file facebook.php, base_facebook.php dan fb_ca_chain_bundle. Masukan kedua file tersebut pada folder libraries. PHP SDK Facebook dapat kita download di documentasi situs Facebook API.

Klik Gambar untuk diperbesar

Langkah Ketiga
Buat Controller facebookdemo.php lalu buat code seperti dibawah ini.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php if(!defined('BASEPATH')) exit('No direct script access allowed.');

class Facebookdemo extends CI_Controller {

    function __construct() {
        parent::__construct();
        // ====== facebok option setting -==========
        $this->load->config('facebook');
        $this->load->library('facebook',$this->config->item('facebook'));
        $fbConfig = $this->config->item('facebook');
   
        // ==========================================
    }

    function index() {
        echo "ini indexnya bro";
    }
 
    function register_facebook() {
        $fbConfig = $this->config->item('facebook');  
        $scope = "email,read_stream,user_birthday,user_photos,photo_upload,publish_stream,manage_pages,status_update,offline_access,user_likes";
        $url = 'https://graph.facebook.com/oauth/authorize?client_id='.$fbConfig['appId'].'&redirect_uri='.site_url('facebookdemo/do_register_facebook_ext/').'&scope='.$scope.'&display=popup';
        redirect($url);
    }
 
    function do_register_facebook_ext() {
        $fbConfig = $this->config->item('facebook');
        if(isset($_GET['code'])) {
            $token_url = "https://graph.facebook.com/oauth/access_token?client_id=".$fbConfig['appId']."&redirect_uri=".site_url('facebookdemo/do_register_facebook_ext/')."&client_secret=".$fbConfig['secret'].'&code='.$_GET['code'];
            $token_data = file_get_contents($token_url); // grab data token
            // echo "<pre>";

            // print_r($token_data);
            preg_match("/access_token=([^&]+)/",$token_data,$token); // filter grap data untuk dapatkan token
            $access_token = $token[1]; // ambil token FB
            # biasanya saya simpan access_token ke database bila perlu untuk melakukan proses API lainnya
           
            $url = 'https://graph.facebook.com/me?access_token='.$access_token; # url untuk ambil data user Login FB
            $fb  =json_decode(file_get_contents($url),true); // ambil data user login FB
           
            // print_r($fb);
            $id_fb = $fb['id']; # ambil ID User FB
            $name_fb = $fb['name']; # ambil Name User FB
            $image_fb = 'https://graph.facebook.com/'.$fb['name'].'/picture'; # ambil gambar User FB
            $email_fb = $fb['email']; # ambil email jika email tidak disembunyikan
         
            # array ini untuk kirim ke wall user FB
            $attachment = array(
                    'userid'=> $id_fb,
                    'access_token' => $access_token,
                    'message' => 'Testing API Facebook dengan Codeigniter..',
                    'name' => "API Facebook dengan Codeigniter",
                    'link' => "http://www.adiputra.web.id/instalasi-facebook-api-pada-codeigniter/", // Link URL sisip disini
                    'description' => 'ini deskripsi..biasanya sih panjang..tapi belum tau sepanjang apa nih..', // Penjelasan lebih lengkap sisip di sini juga
                    'picture'=>'http://www.adiputra.web.id/wp-content/uploads/2012/04/config-300x133.jpg', // gambar dari path local
            );
            $post = $this->facebook->api('/me/feed', 'POST', $attachment);
           
            # biasanya sy buat session untuk menyimpan data di halaman lain nya
            $this->session->set_userdata('id_fb',$id_fb);
            $this->session->set_userdata('name_fb',$name_fb);
            $this->session->set_userdata('image_fb',$image_fb);
            $this->session->set_userdata('email_fb',$email_fb);
           
            # panggil halaman selesai login
            redirect('facebookdemo/register_fb_finish');
        }else{
            # jika gagal dapatkan kode atau user FB tidak menyetujui aplikasi kita
            echo "gagal registrasi";
        }
    }
 
    function register_fb_finish(){
      echo "hai..selesai login dengan fb";
    }
}

Langkah Ke Empat
Testing di alamat ini : http://www.adiputra.web.id/project/ci_demo/facebookdemo/register_facebook

Penjelasan bisa di liat pada koding diatas. Ada pertanyaan, silahkan dikomen ya..
Moga bermanfaat..

16 comments

  1. Uncaught OAuthException: (#200) The user hasn’t authorized the application to perform this action
    thrown in /home/user/public_html/curcol/application/libraries/base_facebook.php on line 1325

    error mas

  2. mas kok malah facebook base nya yang erorr ya ?

    A PHP Error was encountered

    Severity: Notice

    Message: Undefined index: appId

    Filename: libraries/base_facebook.php

    Line Number: 251

  3. {
    “Error”: {
    “Message”: “Invalid redirect_uri: given URL not allowed by the Application configuration.”
    “Type”: “OAuthException”,
    “Code”: 191
    }
    }

    klo ini ketama ya mas apa yang msti di setting di app nya

    1. belum daftar api nye kali nih, daftar dulu, dapetin appid and appsecret nye. terus klo gk salah sekarang si facebook minta publish halaman dulu. jadi user loe aja yg bisa akses API, user lain blum bisa akses kecuali udah di approve ama facebook.

Leave a Reply

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

%d bloggers like this: