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..

%d bloggers like this: