Facebook, yaptığınız sayfaları gelişmiş bir iframe mantığı ile kendi sayfası üzerinden gösteriyor. Bunun anlamı yaptığımız uygulama hem kendi sunucunuz üzerinde hemde facebook sayfası üzerinde çalışacaktır. Sizlere Tavsiyem uygulamayı öncelikli olarak kendi sunucunuzda test etmeniz. Böylelikle sorunlara daha çabuk müdahale edebilirsiniz.
Uygulama Sınıfı Oluşturma
Facebook.php dosyasını çağırıp gerekli tanımlamaları yapıyoruz. Ardından yeni bir facebook sınıfı tanımlayıp uygulamamızın çekirdeğini oluşturuyoruz.
Alıntı
include_once "../facebook/facebook.php";
$fbconfig['appid' ] = ""; //api id
$fbconfig['secret'] = ""; //api secret
$fbconfig['baseurl'] = "http://apps.facebook.com/uygulamadi/index2.php"; //uygulama yolu
//uygulamayı tanımlıyoruz
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
$fbconfig['baseurl'] değişkeni,
uygulamanın herhangi bir işlem yaptıktan sonra hangi url'ye yönleneceğini
belirtiyor. Örneğin üye giriş yaptıktan sonra tekrar bu adrese dönecektir.
Kullanıcı Girişini ve İzinleri Kontrol Etme
$facebook->getUser() ile açık olan oturumu kontrol ediyoruz. Eğer oturum açıksa true değeri dönecek, açık değilse false dönecektir. Eğer oturum açık değilse, facebook sınıfını kullanarak bir giriş url si oluşturup kullanıcıyı o adrese yönlendiriyoruz.
Alıntı
//kullanıcının oturumunu sorguluyoruz. Oturum varsa true, yoksa false dönecektir.
$user = $facebook->getUser();
//kullanıcıya giriş bağlantısı yolluyoruz
$loginUrl = $facebook->getLoginUrl(
array(
'scope' => 'email,offline_access,publish_stream', // scope değeri istediğimiz izinler
'redirect_uri' => $fbconfig['baseurl']
)
);
$logoutUrl = $facebook->getLogoutUrl();
Adresi oluştururken kullanıcıdan hangi izinleri istediğimizi ve giriş
yapıldıktan sonra hangi adrese dönüleceğini belirtiyoruz.
İzinleri daha sonra ayrıntılı şekilde anlatacağım.
Burda email adresine(email), oturum açık olmadan bilgilere erişme(offline_access) ve duvarına yazma(publish_stream) izinlerini istedik. $logoutUrl ise çıkış bağlantısı.
KullanıcıBilgileriOkuma
$facebook->api(/me) ile kullanıcının izin verdiği bilgilerinin tamamını array olarak alıyoruz. Ben arraydan kullanıcının adını(first_name) yazdırdım ve arrayı aynen ekrana bastırdım.
Alıntı
//kullanıcı bilgilerini alıyoruz
$userInfo = $facebook->api("/me");
echo "Hoşgeldiniz,".$userInfo["first_name"].". <br />Çıkış yapmak için <a href='$logoutUrl'>tıklayınız</a><br />";
echo "Okunan Bilgileriniz:<br />";
echo '<pre>';
print_r($userInfo);
echo '</pre><br />';
Kullanıcının Duvarına Yazma
Bir önceki yazıdan farklı olarak kullanıcının duvarına bir eklenti(bağlantı,resim vb) yazdıracağım. Sayfa her yenilendiğinde post edilmesin diye bir bağlantı ile aynı sayfaya get ile bir değer yollayıp o değer ile güncellemeyi gerçekleştiriyorum. $facebook->api(/me/feed, post, ) kalıbı kullanıcının kendi duvarına yazı göndermemizi sağlıyor.
Gönderilecek eki array olarak gönderiyoruz.
Alıntı
echo "<a href='".$fbconfig['baseurl']."?tt=1'>Durumunuzu güncellemek için tıklayın</a>";
if(isset($_GET['tt'])){
//kullanıcının duvarına yazdırıyoruz.
try {
$statusUpdate = $facebook->api("/me/feed", 'post', array(
'message' => "facebookuygulamalari demo uygulaması",
'link' => 'http://facebookuygulamalari.com',
'picture' => 'http://www.facebookuygulamalari.com/img/logo2.png',
'name' => 'Facebookuygulamalari.Com',
'description'=> 'facebookuygulamalari demo uygulaması ile post edilmiştir.'
));
} catch (FacebookApiException $e) {
d($e);
}
if (isset($statusUpdate)) {
echo "<br />Durum ".$statusUpdate['id']." idsi ile güncellendi.";
}
}
Mesela bir video uygulaması yaptınız, kullanıcı videoyu izlediği
anda yukardaki tekniği uygulayarak kullanıcının videoyu kendi
duvarında paylaşmasını sağlayabilir ve uygulamanızın reklamını
yapmış olmasını sağlayabilirsiniz.