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?
Toplam 1 cevap
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>