Gün geçtikçe büyüyen yeni mecra Facebook, yazılım geliştiricilere açtığı APIì ile bizlerin de kendi platformuna uygulama yazmamıza izin vermektedir. Facebook kullanıcıları bir çok uygulamayı bir arada kullanabildikleri gibi kendileri de uygulama yazabilmektedirler. Bu yazımda Facebook ile CodeIgniter arasında bağlantının nasıl olacağını göstereceğim.

Bu yazıdan yararlanacak kişilerin Facebook`a üye olması ve nasıl kendilerine özel API ve secret_key bilgilerini almaları bu yazının konusu dışında olduğu için bildiğiniz varsayılacak ve anlatılmayacaktır.

Öncelikle application/config dizini altına facebook.php isimli bir dosya açıyoruz ve bu konfigürasyon dosyamızın içine aşağıdaki kod satırında verilen yerelere kendimize ait değerleri girerek kayıt ediyoruz.

<?php$config[‘facebook_api_key’] = ‘size_ait_api_key’;$config[‘facebook_secret_key’] = ‘size_ait_secret_key’;

İkinci adımda Facebook client library denilen ve uygulama geliştirme merkezinden indirilen bu kütüphaneyi indiriyoruz. Tüm dosyaları application/plugins isimli dizinin altına (bu dizin yoksa yaratılmalıdır) kopyalıyor ve facebook.php dosyasının adını facebook_pi.php olarak değiştiriyoruz. Böylece dışarıdan gelen bu kodları plugin uygulaması olarak kullanmak üzere hazırlamış olduk.

Sonraki adımda application/library dizini altına giderek buraya MY_Controller.php dosyamızı yaratıyoruz. Bu dosya CodeIgniter Controller dosyasının genişletilmiş halidir ve bundan sonraki tüm Controller dosyalarımızda kullanacağımız Controller dosyamızı üretir. Aşağıdaki kodları MY_Controller.php içine kayıt ediyoruz.

<?php if (!defined(‘BASEPATH’)) exit(‘No direct access allowed.’);class Facebook_Controller extends Controller {public $facebook;function Facebook_Controller(){parent::Controller();$this->load->config(‘facebook’);$this->__fbApiKey = $this->config->item(‘facebook_api_key’);$this->__fbSecret = $this->config->item(‘facebook_secret_key’);$this->load->plugin(‘facebook’);// Prevent the ‘Undefined index: facebook_config’ notice from being thrown.$GLOBALS[‘facebook_config’][‘debug’] = NULL;// Create a Facebook client API object.$this->facebook = new Facebook($this->__fbApiKey, $this->__fbSecret);$user = $this->facebook->require_login();}}

Sira Controller dosyamızın ayarlarına geldi. Burada application/controllers dizini altında varsayılan Controller dosyamız olan Welcome.php dosyamızın içine aşağıdaki kdoları yazıyoruz:

class Welcome extends Facebook_Controller {function Welcome (){parent::Facebook_Controller();}function index(){// Retrieve the user’s friends and pass them to the view.$data[‘friends’] = $this->facebook->api_client->friends_get();$this->load->view(‘welcome_message’ ,$data);}}

Yukarıdaki kodlarda dikkat edilecek husus, Welcome sınıfının Controller yerine MY_Controller sınıfı içinde tanımladığımız Facebook_Controller sınıfının genişletilmesinden oluşmasıdır. Burada Facebook API`da anlatıldığı gibi kullanıcı listesi çekilip, uye sorgulaması yapılmakta ve elde edilen sonuçlar View dosyasına aktarılmaktadır.

View dosyamız application/views dizini altındaki varsayılan Views dosyası olan welcome_view.php dosyasıdır:

<style type=”text/css”>.img {float: left;padding : 10px 0px 0px 10px;width:50px;overflow: visible;}.name {padding-top: 0px;text-align: center;}.container{padding-left:18px;}</style><div class=”container”><?phpforeach ($friends as $id){?><div class=’img’><fb:profile-pic uid='<?=$id?>’ firstnameonly = ‘true’ linked=’true’ size=’square’/><div class=’name’><fb:name uid='<?=$id?>’ firstnameonly = ‘true’ capitalize=’true’ useyou = ‘false’/></fb></div></fb></div><?php}?></div>

Benim de tercih ettiğim yöntem olan bu bağlantı yolunu, hem CodeIgniter`ın değişik yönlerini anlatarak pratik yapmak hem de Facebook için uygulama geliştireceklere bir yol göstermek amacı ile anlattım. Umarım işinize yarar.