2012-11-03 57 views
2

如果用戶登錄到Facebook,我想讓層的高度取決於事實。 我試圖看看用戶是否使用他們的cookie登錄到Facebook,但這沒有奏效。用戶是否登錄Facebook? PHP

<style> 
#layer{ 
height: <?php if($_COOKIE["c_user"]){echo "100px;";} else{ echo "50px;";} ?> 
} 
</style> 

我發現的大多數解決方案都是關於Facebook內的應用程序,但這不是我正在尋找的。 我的網站僅僅只需要一個HIGHT這是依賴於用戶登錄到Facebook或不...

+0

如果你談論的是用戶是否登錄到Facebook的獨立的Facebook登錄到您的網站,這是不可能的。否則,@ ShaneCurran的答案應該有所幫助。 (儘管他引用了JS API,但您也可以在PHP中做類似的工作。) –

回答

0

Facebook的API有一個功能是:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

它會返回一個包含「地位」 paramater JSON。如果狀態等於「連接」,則意味着它們已登錄。如果狀態爲「未知」,則表示它們未登錄。

+0

但這隻適用於應用程序... 而且我沒有製作應用程序! –

+2

@JulianGommers然後你不能得到這個信息。想象一下,如果任何網站可以檢查你是否登錄到任何其他網站,說你的銀行? –

0

您可以真正知道用戶是否通過使用登錄到Facebook JS SDK的FB.getLoginStatus()方法(但它當然需要一個應用程序)。

即使沒有要求用戶允許任何應用程序,Facebook也會通過返回not_authorized響應上述方法來揭示用戶是否實際登錄到Facebook。

例子:

<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>JS SDK Test</title> 
</head> 
<body> 
<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'YOUR_APP_ID', // App ID from the App Dashboard 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File for x-domain communication 
     status  : true, // check the login status upon init? 
     cookie  : true, // set sessions cookies to allow your server to access the session? 
     xfbml  : true // parse XFBML tags on this page? 
    }); 

    FB.getLoginStatus(function(response) { 
     if(response.status == 'connected' || response.status == 'not_authorized') { 
      // user is logged-in to Facebook 
     } 
    }); 
    }; 

    // Load the SDK Asynchronously 
(function(d, debug){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document, /*debug*/ false)); 
</script> 
</body> 
</html>