Facebook Request_ids Alma ve Kaydetme

 bcakir
 6 Eylül 2011

Merhaba arkadaşlar bu yazımı siz okuyucularımızdan gelen istek üzerine yazıyorum. Bu makalede facebook request_ids değerlerimizi almayı ve JQuery ile Php dosyasına göndermeyi anlatacağım. Request_ids, davet isteği yaptığımızda bu daveti diğer davet isteklerinden ayırt etmemizi sağlayan id değeridir. Daha önce davet etme işlemini anlattığım için konunun bu tarafına pek fazla değinmeyeceğim, daha çok bu istekten dönen id değerlerini alma ve gönderme işlemine odaklanacağız. Bu yazımızda da daha önce oluşturduğumuz izinler.php betiğimize ihtiyaç duyduğumuzdan dolayı bu makalemin sonunda bütün betiklerin içinde bulunduğu çalışır dosyayı sizlerle paylaşacağım. Şimdi uygulamamızı yapmaya başlayalım.

<?php
//uygulama izni alma betiğini dahil ediyoruz
include("izinler.php");
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Request_ids İşlemleri</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
    appId:'api id girin',
    cookie:true,
    status:true,
    xfbml:true
});

function newInvite(){
    var receiverUserIds = FB.ui({
        method : 'apprequests',
        message: 'Uygulamamı ziyaret et'
    },
        function(receiverUserIds) {
            var gidecekler="uid=<?php echo $uid; ?>&req_ids="+receiverUserIds.request_ids;
            gonder(gidecekler);
        }
    );
}

function gonder(gonderimler){
    $.ajax({
        type:'POST',
        url:'veri.php',
        data:gonderimler,
        success: function (msg) {
            alert(msg);
        }
    });
}
</script>
</head>
<body>
<div><a href="#" onclick="newInvite(); return false;">Arkadaş Davet Et</a></div>
</body>
</html>

Yukarıda davet işlemimizi yaptık ve dönen request_ids değerlerini aldık. Eğer birden fazla kişi davet ettiysek, aralarında virgül bulunan birden fazla değer elde edeceğiz. Örneğin; 1233323214,1233323779,1233323856 gibi. Bu değerleri veri.php betiğimize gönderdiğimizde explode ile ayırıp öyle veritabanımıza kaydetmeliyiz. Ayrıca kimin istek gönderdiğini de almamız gerekiyor. Zaten bu yüzden izinler.php betiğimizi kullandık. Buradaki $uid istek gönderen kişimiz oluyor. Bu işlemden sonra da göndereceğimiz verilerimizi uygun düzene getirerek JQuery ile post işlemini yaptık, dönen sonucu da uyarı kutusuyla ekranda gösterdik. Uygulamamızın veri.php kısmını da yapalım.

<?php
//veri.php olarak kaydedin
if(isset($_POST["uid"]) && isset($_POST["req_ids"])){
    //isteği gönderen kişi
    $i_gonderen=$_POST["uid"];
    //istek id değerleri
    $req_ids=$_POST["req_ids"];
    //birden fazla istek olabilir diye parçalıyoruz
    $req_ids=explode(",",$req_ids);
    //geriye mesaj döndürüyoruz
    echo "Veriler başarıyla geldi";

    //Veritabanı bağlantı ve kaydetme kodları buraya konulabilir
}
?>

Yukarıda da verilerimizin alınma işlemini ve birden daha fazla değer gelebilir diye de bunları ayırma işlemimizi yaptık. Burada dikkat edilmesi gereken; parçalama işleminden sonra $req_ids değişkeni artık bir dizi oldu. Burada bulunan değerlere $req_ids[0] gibi ulaşabiliriz. Daha sonra da echo ile geri döndürülmesini istediğimiz mesajımızı, ekrana yazdırarak uygulamamızı tamamladık. Siz isterseniz uygun yere veritabanı kodlarınızı yazarak bu değerleri kayıt edebilir ve daha sonra bu istekleri yönetebilirsiniz. Unutmadan bir hatırlatma da yapayım. Uygulamanıza davet ile gelen kişinin request_ids değerini $_GET[‘request_ids’] şeklinde alabiliyorsunuz. Kimin hangi id değerli davet isteği gönderdiğini de veritabanınıza kaydettiyseniz; veritabanınızdan request_id değerine göre aratıp uygulamanıza giren kişinin, kimin davet isteğiyle geldiğini de bulabilirsiniz. Ama gelen kişi, davet isteğiyle gelmediyse request_id değeri yoktur. Uygulamamızın bütün betiklerinin olduğu dosyayı buradan indirebilirsiniz. Böylece makalemizin sonuna gelmiş olduk. Yararlı olması dileğiyle.

 1.965 Okunma

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

  1. teşekkürler faydalı paylaşımın için

  2. Aşağıdaki Kodda veri.php dosyası var ama verileri alamıyorum. Davet sayfasındamı Bir Hata var buradamı anlamadım database veri gelmiyor

    include(‘ayar.php’);

    //veri.php olarak kaydedin
    if(isset($_POST[“uid”]) && isset($_POST[“req_ids”])){
    //isteği gönderen kişi
    $i_gonderen=$_POST[“uid”];
    //istek id değerleri
    $req_ids=$_POST[“req_ids”];
    //birden fazla istek olabilir diye parçalıyoruz
    $req_ids=explode(“,”,$req_ids);
    //geriye mesaj döndürüyoruz
    echo “Veriler başarıyla geldi”;

    $yukle=”insert into request values (”,’$_POST[“req_ids”]’)”;
    mysql_query($yukle);
    }

  3. for ile dongu kur $i=0 dan count($req_ids) değerine kadar, birden fazla id değeri olabilir
    $yukle=”insert into request values ($i_gonderen,$req_ids[$i])”;
    mysql_query($yukle);

  4. İstekleri yönetmek için çok güzel bir uygulama yapmışsın, emeğine sağlık. Kaliteli yazılar yazıyorsun devamını bekliyoruz 😀

  5. Merhaba Dostum Verdiğin Örnek Kod Explorerda Console tanımsız Java Hatası veriyor Tam Verileri Post Ederken Fakat Chromede Sorun Yok neden Kaynaklanabilir,?

    • console.log kodunu ie desteklemiyor onu kaldırdım sorun ortadan kalktı. Onu kaldırarak dene çalışması lazım.

  6. Teşekkürler Sorun çözüldü…

  7. Peki uygulamamızı kabul eden kişi kabul ettiği zaman request_id sini nasıl alacağız, gelen kişinin hangi request ile geldiğini bulamadım yardımlarınızı bekliyorum.

    • Uygulamanıza davet ile gelen kişinin request_ids değerini $_GET[‘request_ids’] şeklinde alabiliyorsunuz. Tekrar belirtiyorum, eğer kişi uygulama davetini kabul ederek girmişse. Eğer başka şekilde girmişse request_ids değeri yoktur.

  8. davet et uygulaması yapıp sayfama ekledim. davet gönderdikten sonra page_id yi bildirime tıklayınca açılan sayfaya göndermem gerekiyor nasıl yapabilirim?

    • Tam net olarak demek istediğinizi anlamadım ama anladığım kadarıyla; page_id değerini açılan davet penceresine gönderemezsiniz ama page_id değerini veritabanına davet istek değeri (request_ids) ile birlikte kaydederek hangi sayfadan davet yapıldığını bulabilir ve kişi o davetle gelince veritabanında davet id değerine göre arama yaparak page_id değerine bakıp o sayfaya yönlendirme yapabilirsiniz.

  9. Anladınız sanırım ne demek istediğimi. Page_id ile request_id yi veritabanına kayıt etmek kolayda nasıl olacak? Davet etmeden önce request_id yi nasıl bulacam ki?

    • Yukarıdaki örnekte request_ids değeri zaten yapılmış. Page id değerini de sen alıp aynı şekilde gönder Php betiğine ve kaydet.

      • Hocam çok özür diliyorum. Size şöyle sorayım. req_ids değerini veri.php ye gönderiyorum ya page_id değerini nasıl göndereceğim? Bunu beceremiyorum kodun neresine yerleştirecem page_id’yi?

        page_id’yi nasıl göndermem gerektiğini bilmiyorum.

        • Örneğin index.php?page_id=2 diye bir sayfada davet isteği yapıyor olalım. Bundan sayfa parametresini $_GET[‘page_id’] şeklinde alırsın. Ben senin uygulaman için sayfa değeri parametresini bilmiyorum, yukarıdaki örnektir. Sayfa parametresini aldıktan sonra;
          data:gonderimler, kısmını bu şekilde düzenleyerek Php betiğine gönder. Php de ise $_POST[“page_id”] şeklinde al ve veritabanına kaydet.

          • Yapamadım. Teşekkürler yardımlarınız için.

  10. request_ids artık gelmiyor facebook sistemini değiştirmiş eskiden kullanıyordum geliyordu şimdi kullanamıyorum güncelleme yapıcakmısın ?

    • Facebook tarafından bu aralar birçok değişiklik yapılıyor, hayran sayfaları da bunlardan biri. Bu değişiklikler tam oturmadan ve Facebook tarafından dökümantasyona yansıtılmadan maalesef herhangi bir değişiklik yapamayacağım. Request_ids hakkındaki sayfaya buradan ulaşabilirsin, şimdilik herhangi bir değişiklik yapmamışlar dökümantasyonda.

      • Anladım. Şuan hala kullanan bir çok kişi varda nasıl kullandıklarını anlamadım bende araştırıyorum kodunu bulabilirsem burayada yazarım.

  11. herşey tamamda şöyle bi sorun çıktı.
    uygulama içerisinden herkes arkadaşlarına sorunsuz bi şekilde davet gönderebiliyor. 2 arkadaşımda yanlışlıkla bana davet göndermiş, bende bu sorunu öyle farkettim. sorunuma buradaki resimden bakabilirsiniz.
    gelen daveti kabul ediyorum ama ne kabul ettiğim davetler siliniyor ne de oradaki istek sayısı. çok sinir edici bi durum. nası düzeltebileceğim hakkında yardımcı olur musunuz acaba?
    şimdiden teşekkürler..

    • Resimdeki sorun; yaptığımız uygulama ile ilgili bir sorun değil, Facebook tarafından oluşan bir hatadır. Ama uygulama davetini kabul et butonuna tıklarsan silinir, tıklamaz direk sol menüden uygulamana girersen silinmez ve sürekli kalır. Gelen davetleri silmek için sol menüden uygulamalar linkine tıklarsan bütün gelen uygulama davet isteklerini görürsün, ayrıca da silebilirsin.

  12. Özgür o senden kaynakkanan bir durum değil o facebookun hatası sadece senin uygulamanda değil tüm uygulamalrada kabul ede tıklasanda silinmiyor.. Merak ettiğim birşey var sen Request_ids i alabiliyormusun ?


  13. bcakir:

    Resimdeki sorun; yaptığımız uygulama ile ilgili bir sorun değil, Facebook tarafından oluşan bir hatadır. Ama uygulama davetini kabul et butonuna tıklarsan silinir, tıklamaz direk sol menüden uygulamana girersen silinmez ve sürekli kalır. Gelen davetleri silmek için sol menüden uygulamalar linkine tıklarsan bütün gelen uygulama davet isteklerini görürsün, ayrıca da silebilirsin.

    ama ben zaten gelen davetleri kabul ettim ve yine ordaki 2 rakamının gitmediğini gördüğüm için size danışmak istedim.


  14. Sahin:

    Özgür o senden kaynakkanan bir durum değil o facebookun hatası sadece senin uygulamanda değil tüm uygulamalrada kabul ede tıklasanda silinmiyor.. Merak ettiğim birşey var sen Request_ids i alabiliyormusun ?

    evet şahin request_ids’yi alıp istediğim gibi kullanıyorum onda sorun yok.

  15. Peki birşey sorucam çakırın yaptığı uygulama ilemi alıyorsun yoksa farklı bir kodmu kullandın ve son olarak uygulama düzenleme sayfasındaki gelişmiş ayarlarda nelere izin verdin nerelere vermedin sanırım benimki o yüzden gelimiyor gelişmiş pencerenin ekran görüntüsünü atabilirmisin bide uygulamaya bakabilirmiyim

  16. başka bi kodla yaptım. ama çakırında dediği gibi bu facebook’la alakalı bişey.
    uygulamanın gelişmiş ayarlarının ekran görüntüsünü aldım.
    burdan bakabilirsin.
    uygulamayada burdan bakabilirsin.

  17. peki şuanda request değerini nasıl alabiliriz? yani güncel uygulama nedir?

  18. Cakır sana söylemiştim request_ids alma kodunu bulursam vericem diye buyur biraz uğraşınca oldu..

    function sendRequest() {

    FB.ui({ method: ‘apprequests’,
    message: ‘sdfsdf’,
    data:”293079220094″
    },
    function (response){
    if(response.request) {

    alert(response.request);

    }

    });

    }

  19. bu kod calistirdigimda alert ilede sonuçlari gösterdigimizde sonuç hep undefined yada 0 şeklinde dönüyor. tşk simdiden.
    $req_ids=explode(“,”,$req_ids);
    $kactane=count($req_ids);
    for ($i=1; $i<=$kactane;$i++)
    {
    echo $req_ids[$i];
    $tablo="insert into davet_takip VALUES('','$davetci','$req_ids[$i]')";
    mysql_query($tablo);
    }

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

Daha fazla Facebook, JavaScript, JQuery, Php
Kapat