Ziyaretçinin Facebook sayfasını beğenip beğenmediğini nasıl kontrol ederim?

0

Facebook üzerinde bir sayfam var ve sayfa içerisinde iframe uygulaması mevcut. Ben  facebook sayfamda kullanıcı eğer sayfamı beğenmiş ise işlem yapabilmesini istiyorum. Yani kullanıcı sayfamı ilk olarak beğenmeli daha sonra sayfa üzerindeki işlevleri kullanabilmeli. "Devam edebilmek için önce sayfayı beğenmelisiniz" şeklinde uyarı gösterip, kullanıcı sayfayı beğendiğinde bu uyarıyı  gizlemek istiyorum.

Kullanıcının facebook sayfasını beğenip beğenmediğini nasıl kontrol ederim?

alattin alattin (13272)
5 yıl önce sordu

Toplam 1 Cevap


0

Javascript ile facebook sayfasının beğenilmiş mi kontrol ederek eğer beğenilmemişse kullanıcıyı beğenmeye zorlayabilirsiniz.

Uygulamanızın gelişmiş özelliklerinden OAuth 2.0 for Canvas özelliğini açtıysanız, her sayfa isteğinde Facebook $_REQUEST['signed_request'] değerini gönderecektir.

function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
  }
  if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
      echo "Sayfa beğenilmiş";
    } else {
      echo "İlk olarak sayfayı beğenmelisiniz!";
    }
  }

 

Alternatif yöntem olarak şunu da kullanabilirsiniz:

<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <style type="text/css">
      div#container_notlike, div#container_like {
        display: none;
      }
    </style>
  </head>
  <body>
    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'YOUR_APP_ID', // Uygulama ID'niz
          channelUrl : 'http(s)://YOUR_APP_DOMAIN/channel.html', // Channel dosyanız
          status     : true, // login durumunu kontrol et
          cookie     : true, // Session'a erişim için cookie'yi aç.
          xfbml      : true  // XFBML
        });

        FB.getLoginStatus(function(response) {
          var page_id = "YOUR_PAGE_ID";
          if (response && response.authResponse) {
            var user_id = response.authResponse.userID;
            var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
            FB.Data.query(fql_query).wait(function(rows) {
              if (rows.length == 1 && rows[0].uid == user_id) {
                console.log("Beğenmiş");
                $('#container_like').show();
              } else {
                console.log("Beğenmemiş");
                $('#container_notlike').show();
              }
            });
          } else {
            FB.login(function(response) {
              if (response && response.authResponse) {
                var user_id = response.authResponse.userID;
                var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
                FB.Data.query(fql_query).wait(function(rows) {
                  if (rows.length == 1 && rows[0].uid == user_id) {
                    console.log("Beğenmiş");
                    $('#container_like').show();
                  } else {
                    console.log("Beğenmemiş");
                    $('#container_notlike').show();
                  }
                });
              } else {
                console.log("Beğenmemiş");
                $('#container_notlike').show();
              }
            }, {scope: 'user_likes'});
          }
        });
      };

      // Load the SDK Asynchronously
      (function(d){
        var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "//connect.facebook.net/en_US/all.js";
        d.getElementsByTagName('head')[0].appendChild(js);
      }(document));
    </script>

    <div id="container_notlike">
     Sayfayı beğenmediniz!
    </div>

    <div id="container_like">
      Sayfayı Beğendiniz!
    </div>

  </body>
</html>

 

alattin alattin (13272)
5 yıl önce cevaplandı

üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol