Facebook Albüm Uygulaması

 bcakir
 31 Ocak 2012

Merhaba arkadaşlar, bir müddettir Facebook uygulaması yapmıyordum çünkü Facebook birçok özelliğini değiştirme sürecinde bundan dolayı da yazılan makaleler güncelliğini yitirebiliyor. Ama yinede sizlerden gelen istek üzerine, bu yazıda Facebook Albüm uygulaması yapacağız. Bu uygulamayı, API sorgularıyla yapmak biraz uğraştırdığı için daha önce anlattığım FQL sorgularından yararlanarak yapmayı tercih edeceğim. Uygulamamızın içeriği; Facebook’ta bulunan bütün albümlerin isimlerini ve kapak fotoğraflarını alt alta listeleyeceğim ve bu kapak fotoğrafına tıklayınca da içerisindeki fotoğraflar gösterilecek. Bu uygulamayı çalıştırabilmek için scope kısmında, kullanıcıdan user_photos izni almanız gerekiyor. Ayrıca daha önce birlikte hazırladığımız izinler.php betiğine ihtiyaç duyacağınız için de uygulamanın çalışır halini yazının sonunda sizlere vereceğim. Uygulamamız kısaca bu şekilde, şimdi yapmaya geçebiliriz.

<?php
//facebook php-sdk'yı include ettik
include_once "izinler.php";

header("Content-Type: text/html; charset=UTF-8");

if(isset($_GET['album_id'])){
	//bağlantıdan tıklanan albümü alma
	$aid=$_GET['album_id'];
	//FQL ile bütün albüm resimlerini alma
	$fql_photo="SELECT src FROM photo WHERE aid='{$aid}'";
	$params=array(
		'method'=>'fql.query',
		'query'=>$fql_photo
	);
	$result=$facebook->api($params);
	foreach($result as $photo){
		//albümün fotoğrafını ekranda gösterme
		echo "<img src='{$photo['src']}' />";
	}
}else{
	//FQL ile bütün albüm ismi ve kapak id alma
	$fql='SELECT aid, name, cover_pid FROM album WHERE owner = me()';
	$params=array(
		'method'=>'fql.query',
		'query'=>$fql
	);
	$result=$facebook->api($params);
	foreach($result as $album){

		//FQL ile bütün kapakların resimlerini alma
		$fql_photo="SELECT src FROM photo WHERE pid='{$album['cover_pid']}'";
		$params=array(
			'method'=>'fql.query',
			'query'=>$fql_photo
		);
		$result=$facebook->api($params);
		foreach($result as $photo){
			//albümün kapak fotoğrafını ekranda gösterme
			echo "<a href='index.php?album_id={$album['aid']}'><img src='{$photo['src']}' /></a>";
		}

		//albümün ismini ekranda gösterme
		echo $album['name']."<br />";
	}
}
?>

Uygulamamızı adım adım anlatma yoluna gittim. Bu uygulamanın daha iyi anlaşılabilmesi için FQL sorgularını incelemenizi tavsiye ederim. Ayrıca, daha önce uygulama izni almış olanların, farklı bir izne ihtiyaç duyacağından dolayı profillerinden uygulamayı kaldırıp tekrar izin vermeleri gereklidir. Uygulamanın zipli halini buradan indirebilirsiniz. Gerekli bütün dosyaları sizlerle paylaşarak bir yazımı daha sonlandırıyorum. Gelecek makalelerde görüşmek dileğiyle.

 2.228 Okunma

Bu yazıya 14 yorum yapılmış.

  1. meraba çok güzel içerikler paylaşıyorsunuz öncellikle teşekkürler. Facebook uygulamalarında kullanıcı fan mı degil mi diye nasıl kontrol edebiliriz acaba

    • “Kullanıcı fan mı ne demek? Eğer sayfayı beğenip beğenmediğini öğrenmek istiyorsan daha önce yazdığım sayfa beğendirme yazısına bakabilirsin.

  2. merhaba, izinler.php üzerinden işlem yaptıkdan sonra arada sırada http 500 hatası veriyor veya uygulama çok geçiyor acaba buna ne neden olabilir.

    • Server hızınla alakalı olabilir. Ne kadar hızlı bir server, o kadar hızlı bir işlem.

  3. Merhaba, oncelike proaktif davranarak boyle bir site hazırladığınız için size yürekten teşekkürler… Uzun zamandır nette facebook üzerinde app geliştirmeyi baştan sona anlatım yapan bir yazı arıyorum. Facebook içindeki dokumantasyon çok dağınık ve içinde kayboluyor insan. Nette bulunan en azından benim yakaladıklarımın tamamı güncel değil. Güncel App oluşturma sayfasını resimli olarak kullanarak bir app yaratma yazısı ekleyebilirseniz çok faydalı olacaktır diye düşünüyorum. Ayrıca tüm yazılar php üzerine. Java için makale eklemeyi düşünür müsünüz? Ben Java servlet üzerinden authentication ve authorization yapmaya çalışıyorum günlerdir. Ama başarılı olamadım malesef. Java geliştiricilerine de yonelik bir makale ekleyebilirseniz minnettar oluruz 🙂

    • Yaptığınız yorumlar için öncelikle teşekkür ederim.
      Prosedürlerden dolayı üniversitede Java dersini alamadım. Bundan dolayı da Java bilmiyorum. Vakit ayırıp öğrenmemde yoğunluktan dolayı kolay kolay mümkün değil. Bu yüzden Java ile ilgili elimden direk bir şey gelmez. Fakat size önerebileceğim bir yol var. Server dili olarak (Facebook’a bağlanma ve bilgi almak için) Php kullanıp, verileri JSON ile Java uygulamanıza parse ederseniz, Java ile authentication yapmaktan kurtulursunuz. Bütün ara işlemler (authentication, kullanıcı fotoğrafını ve mailini alma vs.) Php ile yapılmış olur, siz gelen verileri kullanarak uygulamanızı Java ile kolayca yazabilirsiniz.

  4. Güzel açıklama olmuş teşekkürler

  5. Cevap için teşekkürler. Önerinizi değerlendirmeye çalışacağım. Bu arada Güncel App oluşturma sayfasını resimli olarak kullanarak bir app yaratma yazısı ekleme konusunu değerlendirebilir misiniz? Vaktiniz varsa güncel bir yazı paylaşırsanız çok seviniriz. İyi çalışmalar…

  6. Sadece izinler.php bölümünü düzenleyip oldugu klasöre attım.
    //kullanacağımız uygulama değişkenlerini atıyoruz.
    $fbconfig[‘appid’]=”idi yazdım”;
    $fbconfig[‘secret’]=”secreti yazdım”;
    $fbconfig[‘baseurl’]=”apps.facebook.com/uygulamauzantısı”;

    index klasörünü açınca Bir hata oluştu. Lütfen daha sonra tekrar dene. diyor sorun nerde acaba ?

    • Albümde bulunan fotoğraflarınıza erişim izni vermemiş olabilirsiniz. Uygulamanızın izinlerini tamamen profil hesabınızdan kaldırıp tekrardan izin vermeyi deneyin.

  7. izinler.php serverları çok zorluyor turknet şuan yapı olarak çöküyor :S neden bu kadar işlemci zorluyor acaba

    • Sağlam hosting her zaman avantajlıdır. Ben de aynı scripti kullanıyorum herhangi bir sorunum yok. Hosting hizmetini hostgator dan alıyorum ama.

  8. merhaba ben bir uygulamam da kullnaıcı uygulamayı like edip etmedigini kontrol etmek istiyorumda
    api(array(
    “method” => “fql.query”,
    “query” => “select uid from page_fan where page_id=147879212333 and uid=$fb_sig_user”
    ));
    if ($result[0]==””){
    header (“Location:nofan.php”);
    }
    ?>
    bu kod bazı kişilerde çalışırken, bazı kişilerde çalışmıyor. bu konuda bir fikriniz var mı?

    • uid konusunda facebook birçok yasaklama getirdi, çalışmamasının nedini büyük ihtimal odur.

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Facebook, Php
Kapat