FQL ile Facebook Tablolarında Sorgu Yapma

 bcakir
 28 Ağustos 2011

Merhaba arkadaşlar. Bu yazımız facebook tablolarında sorgular yapma ile ilgili olacak. Facebook’da sorgu yapmak için FQL kullanılır. Bu dil yapısal olarak SQL’e benziyor. Fakat SQL gibi birden çok tabloyu birleştirmeye izin vermiyor. FQL’de sadece tek tablodan veri alabiliriz ama bu dil subquery kullanmaya izin veriyor. Bunun yanında bu dil bazı kolaylıkları da bize sunuyor. Örneğin; uygulamamıza giren kullanıcının id değerini yazma yerine me() yazabiliriz.

SELECT name FROM user WHERE uid=me()

Yukarıda sadece bir tablodan sorgu yaparak giren kişinin adını aldık. Şimdi de subquery örneği vereyim.

SELECT profile_url, pic_square, name
FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())
ORDER BY name ASC

Bu örneğimizde uygulamaya giren kullanıcının bütün arkadaşlarının profiline giden linkleri ve profil fotoğraflarını alıyor. Bu örneği kullanarak tam bir uygulama geliştirelim. Uygulamamız da bütün arkadaşlarımızın profil resimlerini listeleyeceğiz ve bu resimlere tıklayınca da tıklanan kişinin profiline gideceğiz. Bu uygulamada daha önceki makalelerde oluşturduğumuz izinler.php betiğini kullanacağız. Ama merak etmeyin yazımın sonunda bütün betik sayfalarının indirme linkini yine vereceğim.

<?php
include("izinler.php");
$fql='SELECT profile_url, pic_square, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) ORDER BY name ASC';
$params=array(
    'method'=>'fql.query',
    'query'=>$fql
);

$result=$facebook->api($params);
foreach($result as $friend){
    echo '<a href="'.$friend['profile_url'].'"target="_blank">';
    echo '<img src="'.$friend['pic_square'].'"alt="'.$friend['name'].'"border="0">';
    echo '</a>';
}
?>

Uygulamamızı da yaparak burada yazımızın sonuna gelmiş olduk. Uygulamanın bütün betiklerini içeren haline buradan ulaşabilirsiniz.

 1.502 Okunma

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

  1. hem açıklama hem uygulama. teşekkürler yazın için

  2. sql le epey benziyor 🙂 öğrenmesi kolay oldu doğrusu 🙂

  3. hocam ben böyle yazım olmadı neden ! ??

    SELECT name FROM user WHERE uid=me()

    illam hep ikişerlimi yazıcaz

    SELECT profile_url, pic_square, name
    FROM user
    WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())
    ORDER BY name ASC

    bunun gibi likedwin uygulamasına benzer bir uygulama yazıyorum fakat onudamı böyle ikili yazıcağım mesela adminlerini görüceğim sorguyu nasıl yapıcağım

    SELECT page_id, type from page_admin WHERE uid=me()

    bunudamı ikili yapıcağım teşekkürler 🙂

    • İkili yazmak zorunda değilsin, eğer tek bir sorgu işini görüyorsa.

  4. Hocam App id secret id olmadan FQL kullanamaz mıyız ? halka açık uygulama değil sadece bir scriptime eklenti yapmak istiyorum sayfada bulunan tüm videoları çekmek gerekli FQL sorgusu tamamda uygulama vs olmadan kullanamaz mıyım ?

    • Kişiden bilgi alacaksan uygulama izni alman şartı var. Başka türlü bir uygulama yapamazsın. Özellikle Graph Api ile facebook çok fazla kısıtlamaya gitti.

  5. Merhaba

    Ben açık bir grupdaki kişilerin id bilgilerini nasıl sorgulayabileceğimiz hakkında bilginize başvurmak istedim. Batch Request ile sorgulandığı söyleniyor ancak düzgün bir örnek bulamadım. Bu şekilde bir örnek yapma şansınız var mı?

    Teşekkürler.

  6. Güzel bir uygulama olmuş teşekkurler

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

Daha fazla Facebook, Php
Kapat