Merhaba arkadaşlar, sizlerden çok fazla davet ile gelen kişilere puan verdirme türünde sorular geliyordu. Bundan dolayıda, davetiye gönderene puan verdirme uygulaması yapacağım. Elbette, davet edilen kişi isteği kabul ederse puan verilcek. Uygulamamız temel işlevleri barındıracak ama bu mükemmel anlamına gelmesin. Siz uygulamayı kendinize göre geliştirir, yapmak isteyeceğiniz uygulamaya göre eksiklerini giderirsiniz. Bu uygulamayı iyice öğrenmek istiyorsanız, daha önce yazdığım request_ids ve arkadaş davet yazılarını iyice anlamanız gerekiyor, çünkü uygulamamızı bu makalelerin üzerinde geliştireceğiz. Yazımın içeriğini 3 bölüme ayıracağım. İlk bölümde uygulamaya gelen kişiye veritabanına kaydetmeyi ve davet isteğini göndermiş olan kişiye puan artırımınını yapacağım. İkinci bölümde arkadaş davet etme işlemini. Son bölümde ise yapılan davet isteklerini veritabanına kaydetmeyi yapacağım. Uygulamamızın içeriği bu şekilde olacak, sırasıyla geliştirmeye başlayalım.
<?php //veritabanı bağlatısı include("baglanti.php"); //ilk önce istek değerini almamız gerekiyor if (isset($_GET['request_ids'])){ $r_ids=$_GET['request_ids']; //veritabanı puan artırma $query = ("UPDATE kullanicilar SET puan=puan+1 WHERE k_id = (Select user_id From request_ids Where davet_istek='{$r_ids}')"); $result = mysql_query($query, $baglan); //kullanılan davet isteğini silme $query = ("DELETE FROM request_ids Where davet_istek='{$r_ids}'"); $result = mysql_query($query, $baglan); } //uygulama izni alma betiğini dahil ediyoruz include("izinler.php"); //user daha önce kayıt olmuş mu $result = mysql_query("SELECT count(k_id) FROM kullanicilar Where k_id='{$uid}'", $baglan); while ($row = mysql_fetch_array($result)) {$sorgu = $row["0"];} if($sorgu < 1){ //kullanıcı kayıtlı değilse kayıt ediyoruz $query = "INSERT INTO kullanicilar (k_id, puan) VALUES ('{$uid}', '0')"; $result = mysql_query($query, $baglan); if(!$result){echo "Kayıt hatası";} } //veritabanı bağlantısı sonlandırma mysql_close(); //daha önce uygulamaya girenleri davet listesinde çıkarma $uids=''; $fql='SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) AND is_app_user=1'; $params=array( 'method'=>'fql.query', 'query'=>$fql ); $result=$facebook->api($params); foreach($result as $friend){ if($uids==""){ $uids=$friend['uid']; }else{ $uids=$uids.','.$friend['uid']; } } ?>
Yukarıda uygulamamaıza gelen kişinin varsa davet isteğini aldık ve bu isteği yapanın puanını 1 artırdık. Daha sonra da artırımını yaptığımız isteği sildik ve gelen kişiyi kendi veritabanımıza kaydettik. Yukarıda bulunan ve şimdi yazacağım davet istek kodlarını index.php olarak kaydedin.
<!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>Davetiye Puanı Uygulamsı</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:"<?php echo $fbconfig['appid']; ?>", cookie:true, status:true, xfbml:true }); function newInvite(){ var receiverUserIds = FB.ui({ method : 'apprequests', message: 'Ardakadaşını davet et', exclude_ids: "<?php echo $uids; ?>" }, function(Ids) { var gidecekler="uid=<?php echo $uid; ?>&req_ids="+Ids.request_ids; gonder(gidecekler); } ); } function gonder(gonderimler){ $.ajax({ type:'POST', url:'veri.php', data:gonderimler }); } </script> </head> <body> <div><a href="#" onclick="newInvite(); return false;">Arkadaş Davet Et</a></div> </body> </html>
Yukarıda ise davet isteği gönderme ve yapılan davet isteklerini veritabanına kaydettirme çağrısını yaptık. Son bölümde ise bu çağrının bağlı olduğu veri.php kısmını yapacağız.
<?php //veri.php olarak kaydedin //veritabanı bağlatısı include("baglanti.php"); 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); //Veritabanına kayıt etme for($i=0;$i<count($req_ids);$i++){ $query = "INSERT INTO request_ids (user_id, davet_istek) VALUES ('{$i_gonderen}', '{$req_ids[$i]}')"; $result = mysql_query($query, $baglan); } } //veritabanı bağlantısı sonlandırma mysql_close(); ?>
Davet isteklerini veritabanımıza kaydederek uygulamamızın geliştirme işlemini bitirmiş olduk. Uygulamanın çalışması için veritabanı bağlantı betiğine, vertabanı bağlantısına ve uygulama izni alma betiğine ihtiyacınız olduğundan dolayı, bütün dosyaları buradan indirebilirsiniz. Böylece, bir tane daha Facebook Uygulama Geliştirme makalesinin sonuna gelmiş olduk. Yararlı olması dileğiyle, iyi bayramlar.
Not: Uygulamanın uyarı verdirmeli versiyonunu buradan indirebilirsin.
Bu yorum 15 Kasım 2011 tarihinde 13:13 sularında yazılmıştır.
Süpersin, emeğine sağlık. Kimse böyle gelişmiş uygulamarı paylaşmıyor bizimle. Bu yazıların devamını sabırsızlıkla bekliyorum.
Bu yorum 15 Kasım 2011 tarihinde 16:51 sularında yazılmıştır.
Teşekkür ederim, zaman buldukça yazacağım yine.
Bu yorum 19 Kasım 2011 tarihinde 14:19 sularında yazılmıştır.
merhaba emeginiz için teşekkür ederim
message: ‘Uygulamamı ziyaret et’, nerede gözüküyor acaba mesela ben yaptıgımda bildirigi gidiyor kabul ettikten sonra ise öyle sayfaya dönuyor ve uyarı gelmiyor.
Bu yorum 19 Kasım 2011 tarihinde 14:59 sularında yazılmıştır.
Herhangi bir uyarı verdirmedim. massage kısmı arkadaş davet penceresinde gözüken tanıtım yazısı.
Bu yorum 19 Kasım 2011 tarihinde 15:03 sularında yazılmıştır.
İlginiz için teşekkürler. rica etsem açılan arkadaş davet penceresinin boyutuyla oynanabiliyor mu bunu sizden öğrenebilir miyim?
Bu yorum 19 Kasım 2011 tarihinde 15:32 sularında yazılmıştır.
Mâlesef onun hakkında bir bilgi yok dökumantasyonda.
Bu yorum 20 Kasım 2011 tarihinde 12:17 sularında yazılmıştır.
Firefox-firebug ile divin sınıf,id ismine bakıp css ile stillendirmeyi dene. büyük ihtimalle olur dediğin.
Bu yorum 24 Kasım 2011 tarihinde 13:45 sularında yazılmıştır.
cok guzel yazi, fakata Ids.request_ids, undefined cikiyor. req ids gelmiyor…
Bu yorum 24 Kasım 2011 tarihinde 14:18 sularında yazılmıştır.
Uygulama izini aldıysan hata vermemesi gerekiyor. Deneyerek yüklediğim için eminim uygulamada hata olmadığına.
Bu yorum 24 Kasım 2011 tarihinde 14:25 sularında yazılmıştır.
Hizli yanit icin tesekkurler, tum izinler alindi oyuncunun dogum tarihinden her seye aliyorum, davetim de gidiyor fakat req id yi alamiyorum tek sorun o.
bahsettigim gibi scriptinizde Ids.request_ids, undefined cikiyor. diger sayfanizdaki orneginizde de ayni sekilde receiverUserIds.request_ids undefined cikiyor.
Bu yorum 24 Kasım 2011 tarihinde 15:02 sularında yazılmıştır.
Uygulamayı tekrar denedim sorun vermedi, sendeki hatanın neden kaynaklandığını anlayamadım. Uygulamaya, geriye uyarı verdirme kodu ekledim sorunsuz geri geldi request_ids değerleri. Ekran görüntüsüne buradan bakabilirsin. Uygulamanın uyarı verdirmeli versiyonunu buradan indirebilirsin.
Bu yorum 24 Kasım 2011 tarihinde 18:52 sularında yazılmıştır.
ilginiz icin tesekkurler, verdiginiz son kodu da aynen uyguladim, fakat davet gidiyor, yine undefined degeri aliyorum,
sanirim uygulama ayarlarinda bazi ayarlari degistirmek gerek ben de arastiriyorum.
Bu yorum 24 Kasım 2011 tarihinde 21:10 sularında yazılmıştır.
izinler betiğinin içinde 3 tane facebook api değerlerini girin dediğim yeri doldurdun mu bu arada?
Bu yorum 24 Kasım 2011 tarihinde 23:05 sularında yazılmıştır.
evet her degismesi gereken yer vs ok, dedigim gibi davet vs her sey gidiyor karsi tarafa, karsi taraf tikliyor uygulamaya giriyor, tek sorun davet gonderen kisi request_ids degerini alamiyor yazdirdigimda undefined diyor.
Bu yorum 24 Kasım 2011 tarihinde 23:21 sularında yazılmıştır.
uygulamam bu adresteki script ile calisti. ilginiz icin tesekkurler.
Bu yorum 03 Şubat 2012 tarihinde 15:52 sularında yazılmıştır.
Bu kodun hangi kısmı ile çözdünüz ??
Bu yorum 02 Aralık 2011 tarihinde 11:20 sularında yazılmıştır.
selam sayın Çakır,
bir sorum olacaktı. Facebook fan sayfası varsayılan sekmesi ayarlamasını yapabiliyorum. yani sayfayı beğenmeyen ziyaretçiye varsayılan sekmeyi gösterebiliyorum. sekme sayfasında kişinin sayfayı beğenip beğenmediği görülebiliyor mu ? o sorgulamaya göre ekranda göstermek istediklerim var çünkü. yani önce üst kısımdan sayfayı beğenmesini söyleyen bi görsel hazırlayıp beğendikten sonra yine aynı sekmede bir uygulama açılmasını istiyorum. yardımcı olabilirseniz sevinirim.
Bu yorum 03 Aralık 2011 tarihinde 21:57 sularında yazılmıştır.
Bu konuda herhangi bir çalışma yapmadım, bundan dolayı yapılışı hakkında yanlış yönlendirmek istemiyorum ama dediğiniz yapılıyor. Beğenirse sayfayı gösterebilir, beğenmezse giriş hakkı vermeyebilirsiniz.
Bu yorum 19 Aralık 2011 tarihinde 23:13 sularında yazılmıştır.
Betikleri inceliyorum da, davet edilen kişi sayfayı beğenirse ama aplikasyona onay vermezse, davet eden kişinin puanı artmıyor herhalde. Yanılıyormuyum?
Bu yorum 20 Aralık 2011 tarihinde 00:11 sularında yazılmıştır.
Bu bir sayfa beğendirme uygulaması değil, Facebook’ta yer alan oyunlar mantığıyla çalışan bir uygulama. Bundan dolayı da, sayfayı beğenme ile alakalı bir şey içermiyor. Uygulamanın amacı, yeni bir kullanıcı getiren kişiye yani davet isteği yapan ve bu davet ile uygulamanın kullanıcı sayısı artırana puan verdirmek.
Bu yorum 22 Aralık 2011 tarihinde 09:06 sularında yazılmıştır.
Merhaba, uygulamanı bir kaç gündür inceliyorum, fakat şöyle bir sorun var, daveti alan kişi beğendirmek istediğim, sayfaya yönelmiyor tekrar app’a yöneliyor, halbuki ben daveti alan kişinin, sayfaya yönelmesini ve beğenmesini ve puan almasını, sonra kendisininde (isterse tabi) app’ı kullanarak başka arkadaşlarını davet etmesini istiyorum, fakat öyle birşey yapamıyorum, ne yapmam gerekli bilgilendirebilirmisin?
Bu yorum 22 Aralık 2011 tarihinde 11:18 sularında yazılmıştır.
Bu uygulama, Facebook’ta yer alan oyunlar mantığıyla çalışan bir uygulama. Bundan dolayı da, sayfa beğendirme tarzı uygulamalar bu uygulamanın kapsamı dışarısında kalıyor. Sizin istediğiniz çok daha farklı yani sayfa içi uygulama. Sayfa içi uygulamalar konusuyla ilgilenmediğim için sizi yanlış yönlendirmek istemiyorum.
Bu yorum 23 Aralık 2011 tarihinde 08:53 sularında yazılmıştır.
ilgine teşekkür ederim.
Bu yorum 27 Aralık 2011 tarihinde 13:23 sularında yazılmıştır.
veritabanına kayıt etmeyi denedim veritabanına request id yerine “undefined” kayıt oluyor. bunun sebebi nedir acaba.
Bu yorum 27 Aralık 2011 tarihinde 13:34 sularında yazılmıştır.
Hata ile ben karşılaşmadığım için çözümü maalesef bulmam mümkün değil. Bir kişi daha aynı hatayı aldığını söylemişti ve sorunu bu bağlantıdaki kod ile çözmüş.
Bu yorum 27 Aralık 2011 tarihinde 13:41 sularında yazılmıştır.
Üstte izin vermeden olmaz demiştiniz. Ben izin almadan yapıyorum zaten. İzin almadan davet gönderebilmem için ne yapmalıyım peki?
Bu yorum 27 Aralık 2011 tarihinde 13:50 sularında yazılmıştır.
Yukarıda bulunan linki düzelttim. Bu uygulamanın maalesef uygulama izni almadan çalışması mümkün değil. Çünkü kişiye puan verdirme işlemini içeriyor. Eğer amacın sadece davet yaptırmak ise daha önce yazdığım bu yazıyı kullan ya da Fbml ile arkadaş davet diye arama yap.
Bu yorum 23 Şubat 2012 tarihinde 17:35 sularında yazılmıştır.
Uygulamayı facebook’a nasıl aktara biliyoruz?
Bu yorum 25 Şubat 2012 tarihinde 15:06 sularında yazılmıştır.
dosyaları ftp up et facebooktan uygulama ac ordakı bilgileri gereklı yerlere koy sen bısey yapmasanda uygulama calısır
Bu yorum 27 Şubat 2012 tarihinde 01:51 sularında yazılmıştır.
Facebook uygulama oluşturma yazısından sırayla okumaya başlarsan cevabını bulacaksın.
Bu yorum 25 Şubat 2012 tarihinde 15:05 sularında yazılmıştır.
Hocam burdakı Ids.request_ids kodu calısmıyor sanırsam ordan post edılen verı gozukmemekte sadece kısının id adresı gelıyor bunun hakkında nasıl bır yol ızlememız gerekmekte??
Bu yorum 27 Şubat 2012 tarihinde 01:50 sularında yazılmıştır.
Bir okurun yazdığına göre request_ids konusunda değişiklik olmuş. Maalesef facebook dökümantasyonuna yansımamıştı.
Bu yorum 01 Mart 2012 tarihinde 20:35 sularında yazılmıştır.
evet sorunu
var requests = request_ids.join(‘,’);
$.post(‘handle_requests.php’,{uid: , request_ids: requests},function(resp) {
// callback after storing the requests
});
bu kod ile çözebiliriz, handle_requests.php dosyası içerisine de veri klasorunun ıcerıgını eklersek hıc bır sorun olmaz
Bu yorum 04 Mart 2012 tarihinde 18:16 sularında yazılmıştır.
Öncelikle bu yazınız gerçekten çok işime yaradı çok teşekkür ederim size. Size sorum örneğin bir yarışma uygulaması düzenlesem bu sıralamaları kullanıcılara nasıl gösterebilirim?
Bu yorum 14 Mart 2012 tarihinde 14:12 sularında yazılmıştır.
Yarışma puanları gibi skorları kendi veritabanınıza kaydedip, buradan istediğiniz şekilde ve istediğiniz verileri kullanıcılarınıza kolayca gösterebilirsiniz.
Bu yorum 07 Mart 2012 tarihinde 19:59 sularında yazılmıştır.
mysql bilgisine ihtiyacın var ogrenmek ıstıyorsan gercekte yanı kopyala yapıştırla yapmak istemıyorsan yok bn oyle yapmak ıstıyrum dıyorsan mysq sıralama nasıl yaparım yaz google amcaya ordan bulursun
Bu yorum 27 Nisan 2012 tarihinde 21:10 sularında yazılmıştır.
Arkadaşlar merhaba; Facebook birçok şeyi güncellemiş örneğin normalde standart izinlerle kullanıcının herhangi bir sayfayı beğenip beğenmediğini öğrenebiliyorken şuan user_likes iznini almadan bunu başaramıyoruz.
Benim Sorum ise şu bir kullanıcı bir kez uygulamayı kurdu ve izinleri verdi bu izinleri nasıl güncelleriz mesela başta almadığımız bir izni daha sonra nasıl alabiliriz.?
Bu yorum 30 Nisan 2012 tarihinde 16:27 sularında yazılmıştır.
Sayin Çakir ; Benım size bir sorum olucaktı . Örneğin bir uygulamamız var uygulama sıfır bir uygulama davet metodu facebook’ta arkadasın varsa davet penceresi acılır ve davet edilecek arkadaslar listelenir. İşte benım sorum burda baslıyor…
[ Örneğin davet edicek kişi benim arkadaşım değil.. Ve Kişinin id’sine göre bir davet metodu oluyor mu? ]
Şahsım adına böyle bir olay gercekleştide bu konu hakkında bir bilgi verirseniz sevinirim.
Bu yorum 30 Nisan 2012 tarihinde 19:12 sularında yazılmıştır.
İstediğiniz yapılabilir fakat kişinin kendi arkadaşları dışında yapılan davet istekleri Facebook tarafından spam olarak sayılıyor. Kişisel olarak, spam olarak kabul edilen bir şeyin nasıl yapıldığını göstermeyi etik açıdan uygun bulmuyorum. Bundan dolayı bu konuda yardım edemeyeceğim.
Bu yorum 24 Haziran 2012 tarihinde 13:11 sularında yazılmıştır.
Üzgünüz, kullanmakta olduğun uygulama yanlış yapılandırılmış. Lütfen daha sonra tekrar dene
bende böyle bir hata verdi nedir acaba cevabınız bekliyorum teşekkürler
Bu yorum 15 Ekim 2012 tarihinde 18:35 sularında yazılmıştır.
Bu uygulamayı yaptıktan sonra facebook birçok değişiklik yaptı, sorun bundan dolayı kaynaklanıyordur. Ayrıca bu bir facebook sayfa uygulaması değil (facebook oyunları gibi çalışır). Bundan dolayı facebook sayfalarınızda kullanamazsınız.