Facebook Duvarda Paylaş ve Davet Et Kodu

 bcakir
 28 Ağustos 2011

Merhaba arkadaşlar bu yazımda sizlere facebook duvarınızda paylaşma ve uygulamanıza arkadaşlarınızı davet etme kodunu paylaşacağım. Bu iki kod da iframe olarak çalışıyorlar. Bu kodlar için ayrı bir sayfa açıp bu kodları yazmanıza gerek yok. Çünkü Javascript SDK‘ya göre düzenlendiler. Çalışma mantığı popup pencere açılıyor ve buradan duvarınızda mesaj paylaşıyorsunuz ya da arkadaşlarınızı davet ediyorsunuz. Kodlarımızın çalışma mantığı bu şekildeydi, şimdi betiğimizi yazmaya geçelim.

<!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>JavaScript API ile Davet ve Duvarımda Paylaş</title>
<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 streamPublish(name, hrefTitle, userPrompt){
    FB.ui({
        method     : 'feed',
        to         : 'duvar sahibinin id değerini girin',
        name       :  name,
        caption    :  hrefTitle,
        description:  userPrompt,
        picture    : 'http://i52.tinypic.com/nh15yr.png'
    });
}

function publishStream(){
    streamPublish(
        "İki Kod Bir Arada",
        'Duvarda paylaşma',
        'Arkadaş davet etme'
    );
}

function newInvite(){
    var receiverUserIds = FB.ui({
        method : 'apprequests',
        message: 'Uygulamamı ziyaret et'
    },
        function(receiverUserIds) {
            //ie console.log kodunu desteklemez, isterseniz de kaldırabilirsiniz
            console.log("IDS : " + receiverUserIds.request_ids);
        }
    );
}
</script>
</head>
<body>
<div><a href="#" onclick="publishStream(); return false;">Duvarında Paylaş</a></div>
<div><a href="#" onclick="newInvite(); return false;">Arkadaş Davet Et</a></div>
</body>
</html>

Yukarıdaki uygulamayı iki tane buton ile kontrol ediyoruz. Bunlara tıklanınca fonksiyonlar çalışıyor ve pop up pencerelerimiz açılıyor. Uygulamanın çalışması için api id değerinizi girmeniz, kimin duvarında paylaşacaksanız onun id değerini girmeniz (kendi duvarınızda paylaşacaksanız isterseniz to kodunu kaldırabilirsiniz) ve mesajları kendinize göre düzenlemeniz yeterli.

Not: Bu yazıda daha önceden yaptığımız gibi, Facebook uygulama izinlerini almanız gereklidir (PHP SDK ile almak istemezseniz JavaScript SDK konusunu Facebook developers sayfasından inceleyebilirsiniz).

 9.927 Okunma

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

  1. Çok Bilgilendirici bir makale teşekkürler
    bir sorum olacak request_ids değerini nasıl alabilirim. Değişken Olarak ?

    • Teşekkür ederim. Anladığım kadarıyla gönderirken almak istiyorsun request_id değerini. receiverUserIds.request_ids gönderilen request_id değerlerini bize veriyor. Sen istersen bunu global bir değişkene aktararak veya return ile fonksiyondan dışarı çıkarabilirsin. (Örneğin: return receiverUserIds.request_ids;)

  2. Bu Konuda YArdımını Bekliyorum Gerçekten çok yoruldum araştırmaktan örnek bir kod verirsen ben ondan çıkarırım. Dialog penceresi popup olarak açılıyor verdiğin örnekte oradan jquery ile başka bir php dosyasına post edip onu databaseye yazamammı? örnek bir kod verirsen çok minnettar kalırım.

    • Çok kolay yapabilirsin bunu, zaten request_id değerlerini alıyorsun yukarıda yazdığım şekilde. Sadece post etmen gerekli php sayfasına. Daha önce JQuery post işlemini diğer yazılarda anlatmıştım ama bu tarz bir örneği de kısa süre içerisinde yazıp yayınlarım. Bir makale yazdım request_ids ile ilgili.

  3. Dostum İlgin İçin teşekkür ederim. Bu Şekilde Davet Gönderildiğinde kullanıcıya direk uygulama adresi gidiyor. Kullanıcıya giden linke xxxx.com?refuserid=xxx gibi bir değer atayabilirmiyim. Amacım facebookta davetle bir puan toplama sistemi yazmak kullanıcı davet ile yada profilinde paylaşarak kişileri uygulamaya kazandırdığında onlara puan vericek gibi düşünebiliriz. Duvarında Paylaştığımda Bahsettiğim Gibi bir değer atıyorum böylece kullanıcıyı kimin davet ettiğini anlıyorum ama davet yönteminde kimin davetiyle geldi anlayamıyorum.

    • Request_ids ile ilgili yazdığım yazıda kimin istek gönderdiğini ve hangi id değerine sahip isteklerde bulunduğunu almıştık. Bunları veritabanına istek yapan ve istek id şeklinde kaydedeceksin. Daha sonra da uygulamana giren kişinin request_ids değerini Php ile $_GET[‘request_ids’] şeklinde alıp veritabanından kimin bu isteği gönderdiğini buldurup bu kişiye puan vereceksin. Bu kadar basit.

  4. evet fakat yayınladığın uygulama ile davet isteği gönderdiğimde daveti kabul eden kişide reguets_id değerini göremiyorum gördüğüm değerde daveti gönderen kişi,nin id si olmuyor bunun sebebi nedir.

    • Request_ids değeri kabul eden kişide var. Örneğin; apps.facebook.com/deneme/?request_ids=2353035874588 Sadece gönderenin id değeri yok, onu da zaten kendinin veritabanına kaydetmiş olman gerekiyor kişi uygulamandan arkadaş davet isteği yaparken. Eğer kaydetmezsen bu işlem işe yaramaz. Daha sonra da kendi veritabanındaki request_ids değeri ile arama yapacaksın ve kimin gönderdiğini bulacaksın. Sen yine yapamayacaksın şimdi. MySQL koduna da örnek yazayım bari.
      Select uid From Tablo_ismi Where request_ids=$_GET[‘request_ids’]

  5. request id değeri davetin bir kodu yani davet gönderilenin facebook idsi değil değil mi kaç tane request id olduğunu sayarak kaç kişinin davet edildiğini öğrenebilirmiyim?

    • Yukarıda açıklayarak yazdım hala daha nasıl oluyor da anlaşılamıyor şaşırıyorum. Request id yaptığın isteğin id değeri. Kullanıcı id falan değil. Kullanıcı id ile bunu birlikte kendi veritabanına kaydedince kimin hangi istekte bulunduğunu bilebilirsin. Başka biri bu isteği kabul edince de istek id (request_ids) değerine göre kendi veritanbanında arama yaparak kimin isteğini kabul ettiğini bulabilirsin. Request_ids değerlerini sayarak kaç tane davet isteği yapıldığına da ulaşabilirsin. Ayrıca kimin kaç tane davet isteği gönderdiğine de. Bu kadar basit. Tek bir tavsiyede bulunacağım sana bu kadar bilgiyle de yapamazsan bu uygulamayı yapmaktan vazgeç.

  6. seni yorduysam kusura bakma dostum. Tavsiyen için teşekkürler yardımların içinde benimde tavsiyem öğretici ve eğitici olmak sabır gerektirir eğer böle bir görev üstlendiysen sabırlı olmalısın. Seni yormuş olabilirim tekrar teşekkürler.

  7. Tüm yazdıklarını Çok İyi Anladım Dostum Gerçekten Çok Teşekkürler.Şuanki Tek Sorunum Aslında İlk Sorunum Örnek Verdiğin Kodla Veri tabanına Request id Değerinini Alamamak.

  8. Dostum Hallettim Kabahat Bendeymiş 😀 Teşekkürler Herşey için

    • Gerçekten sevindim yaptığına. Aslında farklı bir şey yazmadım sürekli yazdığımı tekrar ettim yukarıda. Bu arada bütün sorularına cevap yazıp açıkladım sana hakkımı yeme 😀 sadece request_ids değeri kullanıcı id değeri değil di dimi deyince şok oldum. Bu soruyu hiç uygulama yazmamış biri anca sorar. İyi günler, iyi çalışmalar. Ama sen benim yazdığım yazıların hepsini baştan oku bence 😀

  9. ya banada hak ver yargısız infaz yapma kafam saçma sapan kodlarla doldu karıştı anlayacağın düşün işte durumumu 🙂 uykusuzluk ve sonuç bu sabrın ve anlayışın için teşekkürler ben Öğretmenim bu arada Grafik tasarım 🙂 Banada Çok Garip Sorular gelir hep sabır derim 🙂

  10. Faruk arkadaşın yapmak istediği Sayfa Öner Uygullaması yapmak

    http://www.facebook.com/apps/application.php?id=123725371037047&sk=app_123725371037047

    tam olarak bunun gibi bir uygluama yapmak istiyor anladığın kadarıyla bu uygulamayı ben yapmıştım hoşgeldiniz adına sonra sattım şuanki sahibine oda sayfa önere çevirdi bende çok uğraştım sayfa öner uygulaması yapmak için herşeyi yaptım request_ids id de aldım ama page_id i alamadım orda takıldım kaldım yeni sayfa öner ile ilgilie bi paylaşımın var ama ondadaö nerilenn sayfa için önerdikten sonra nasıl açılıcağını yazmamışsın neyse bana bir kod lazım eğer yardımcı olabilirsen çok sevinirim Facebook popup penceresi kodu lazım hani arkadaş önere tıklayınca popup açılıyor ya onun gibi ama onun içine form yazıcam yani facebook için giriş yapıcam ama o popup penceresi ile yapmak istiyorum yardımcı olabilrsen çok sevirinirim şimdiden çok tşkederim artık takipçinim 🙂

    • Kodu biraz daha düzenlediğin için teşekkürler. Yayınlanmasına izin verdim. Burada ne demek istediğini tam anlamadım. Açıklayarak yazarsan, elimden bir yardım gelirse yapmaya çalışırım.

  11. Öncelikle bilgilendirmen için çok tşkederim bi kaç yerde çok işime yaradı yalnız bi iki hatası vardı örneğin uygulamanı duvarda paylaşınca resme veya başlığa tıkladığında resmin url si açılıyordu onu düzelttim ve davet önerilince önerildi diye uyarı ekledim kodu paylaşmak istedim belki bazı arrkadaşların işine yarayabilir herşeyi açıkca yazdım kodun içine…

    JavaScript API ile Davet ve Duvarımda Paylaş
    FB.init({
    appId : ‘api id girin’,
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml : true // parse XFBML
    });


    function newInvite(){

    FB.ui({method: ‘apprequests’, message: ‘Arkadaşın seni “xxxxxx” Uygulamasına davet ediyor…’, data: ‘tracking information for the user’},
    function(response) {
    if (response && response.request_ids) {
    alert(‘Davet Başarılı.’);
    } else {
    alert(‘Davet Gönderilemedi.’);
    }
    });
    }


    function publishStream(){

    FB.ui({
    method: ‘feed’,
    name: ‘_UYGULAMA_BASLIGI_’,
    link: ‘http://apps.facebook.com/_ADRESIN_/’,
    picture: ‘http://i56.tinypic.com/2wqsrh0.jpg’,
    caption: ‘_ALT_BASLIK_’,
    description: ‘_ACIKLAMA_’},
    function(response) {
    if (response && response.post_id) {
    alert(‘Duvarınızda Yayınlandı.’);
    } else {
    alert(‘Duvarınızda Yayınlanamadı.’);
    }
    });
    }

    • Bu kodu uygulamanın ilk sayfası olan index.php içine mi atacağız. Ben ekleyince hata verdi de.

      • Uygulamaya api id değerinizi girerseniz hata vermemesi gerekir. Html dosyası olarak kaydedip deneyin.

  12. Yani bana tam olarak şöyle bi popup penceresi lazım faceye upload ettim

    http://a2.sphotos.ak.fbcdn.net/hphotos-ak-snc7/301073_10150276041825095_293079220094_8209531_1068262969_n.jpg

    bu resimdeki gibi bir popup penceresi lazım yani aynısını yapabilrimiyiz acaba

    • Bunun facebook penceresi içerisinde yapılıp yapılmadığını hiç denemedim. Ama bu işlem JQuery dialog kutuları ile kolayca yapılabilir.
      thickbox
      dialog boxes

      • ya bi kişi ypamış bunuda kodlarını alamadım bi türlü ama o yasal olmayan işler için yapmış

  13. merhaba. bir şey sormam lazım. mesela arkadaşlarımızı davet ettik. arkadaşlarımıza bildirim gidiyor. bildirime tıkladıklarında uygulamaya gidiyorlar. bildirime tıklandığında http://www.deneme.com adresine yönlendirme imkanı yok mu?

    • Facebook uygulamalarının amacı o değil ama aşağıdaki php koduyla bir dene. Belki de yönlendiriliyordur.
      header(‘Location: http://www.example.com/‘);

  14. Merhaba Uygulamayı aktif ettim ellerinize saglık benim aradıgım uygulama kodu aslında kendi belirttigim siteye gidecek bir uygulama ve davet ettigim kişilerde davet gönderebilecek.

    • Yukarıdaki uygulamayı kullanarak bütün herkes davet isteğinde bulunabilir, tabi uygulamaya izin vermişse. Eğer dış bir siteye yönlendirme yapacaksanız böyle bir şey mümkün değil çünkü Facebook uygulama mantığına aykırı. Sadece uygulamanızın içerisindeki sayfalara yönlendirme yapabilirsiniz.

  15. Merhaba,
    Gerekli ayarı yapmama rağmen şöyle bir hata veriyor:
    “xxxx uygulamasında bir hata oluştu. Lütfen daha sonra tekrar dene.

    API Error Code: 191
    API Error Description: The specified URL is not owned by the application
    Error Message: redirect_uri is not owned by the application.”
    Hatanın nedeni ne olabilir?

    • “The specified URL is not owned by the application girdiğiniz bağlantı sizin uygulamanıza ait değil diyor. Uygulama adresinizin doğru olduğunu kontrol edin.

  16. kardeş ben bu kodu nereye yazacam onu anlamadım :/

    • Facebook’ta bulunan oyunlar gibi arkadaş davet isteği yapmak için; uygulama oluşturup, uygulama sayfana ekleyeceksin.

  17. Bu kod şu an çalışmıyor sanırım. Çünkü paylaştığımda zaman tunelimde görünmüyor ama eski profilimde paylaştığımda oradaki profilimde görünüyor.Bu güncel mi acaba değilse güncelleyebilir misiniz?))

    • Yorumunuz için teşekkürler, bu uygulama zaman tünelinden önce yazılmıştı. Zaman tünelinede paylaşma ile ilgili bir yazıyı müsait olunca yazmaya çalışacağım. İyi günler.

  18. s.a. hacılar şimdi bu kod, facebook uygulamamıza arkadaş davet etmek ve duvarda paylaşmak için… ancak ben sayfa önermek için kodu irdeledim.. yapamadım. bu konuda ne yapabilirim? yani arkadaşlarına öner dediğinde sayfayı arkadaşlarına beğenmesi için önericek… biliyorum internette bir çok uygulama var bunun için ama reklam ve spam içeriyor hepsi.. ben kendi tasarımımla yapmak istiyorum.. yardımcı olursanız sevinirim…

  19. Arkadaşlar array olarak aliyorum diziyi, count degeri degisiyor fakat, gelen ids degerleri boş geliyor.
    Mesala ‘undefined’ veya 0 şeklinde db ye kaydediyorum.

  20. Peki Admin güzelde nereye yapıştıracam ben bunu?

  21. s.a öncelikle paylaşımlarınızı çok beğendim.Bu Facebook uygulamalarıyla bende ilgileniyorum ve şöyle bir projem var : “Kullanıcı siteye girdiğinde facebookta login olup olmadığını kontrol ediyorum.Eğer kullanıcı login değilse login olmasını istiyorum.Eğer login olmuşsa bilgilerini alıyorum.Daha sonra sitede 2 tane buton bulunmakta.Arkadaş listeni gör ve duvarına yaz diye.Ben burada arkadaş listesini çekiyorum kullanıcının ancak duvarına yazma olayına yazdığım kod daha önceden çalışmasına rağmen şimdi çalışmıyor.(Bu arada arkadaş listesinden duvarına yazmak istediği kişiyi kullanıcı seçiyor.)

    Yardımcı olursanız sevinirim 🙂

  22. merhaba.
    elinize saglık dil desteginiz olsaydı çok daha güzel olurdu.

  23. çok iyi bir makale olmuş teşekkür ederiz 🙂

  24. Ben bu kodları yaklaşık 1 aydır çalıştırmaya çalışıyorum fakat bir türlü beceredim kardeşim. Orada appsıd karşısına apps kodunu yazdım sonra bunu txt dosyasında uzantısı html olarak kaydettim bi host sitesinden de host aldım fakat çalışmıyor sizce ben nerede yanlış yapıyorum? sayfanız cok güzel bu arada kardeşim.

    • Php dosyasını (curl destekli host almalısın) html keydedersen çalışmaz tabiki de. Anlaşılan php bilgin yok senin.

      • evet php bilgim yok kardeşim lütfen izleyecemğim adımları tek tek yazar mısın? curl destekli host sitesi var mı bildiğin?

      • kardeşim lütfen bana yardım et tam olarak nasıl yapacam her yolu denedim olamadı facebook sayfanada mesaj attım istersen oradan söyle lütfen yardım et.

      • verdiğin kodlar sanki php de. adama curl destekli host al diyorsun:) ne alakaysa, altı ustu html işte.. php fonksiyon bile yok.

        • Bu konuda bir şeyi söylemeyi unutmuşum. Facebook kategorisinde ilk yazıdan son yazıya doğru okursan uygulama izinlerini almamız gerektiği yazıyor. Çünkü arkadaşlarımızın duvarında izin almadan birşey paylaşamayız ve kimseye davet atamayız. Bunları bu dosyada değil daha önceden yazdığım Facebook izin alma bölümünde anlattım. İzin işlemlerini JavaScript SDK ile yapmadığımız sürece Php ve Curl destekli hosta ihtiyacımız var (ben bu işlemleri Php SDK ile yapıyorum ve Php SDK’ya göre anlatmıştım, bundan dolayı bunu söyledim). Bu yazıda daha önceden yaptığımız gibi, Facebook uygulama izinlerini almanız gereklidir demeliydim.

  25. engel almısım 30 gun sayfa gelıyor bunları kabul edıyorum ama enson kısımda su mesaj gelıyor (bir hata oluştu. lütfen daha sonra tekrar dene) en son tamam dedıgımız yerde bana yardım edermısınız rıca etsem

  26. Merhaba, web sitemden uygulamaya davet edilen kişi sayısını nasıl kendi veritabanıma kayıt ettirebilirim?

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

Daha fazla Facebook, JavaScript
Kapat