2

ユーザーがFacebookにログインしているかどうかに応じて、レイヤーの高さを変更したいと思います。ユーザーが自分のCookieを使用してFacebookにログインしているかどうかを確認しようとしましたが、これは機能しませんでした。

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

私が見つけたほとんどの解決策はFacebook内のアプリについて話していましたが、これは私が探しているものではありません。私のウェブサイトは、ユーザーがFacebookにログインしているかどうかに依存する高さだけを必要とします...

4

2 に答える 2

0

ユーザーが Facebook にログインしているかどうかは、JS SDK のメソッドを使用して実際に知ることができFB.getLoginStatus()ます (ただし、もちろんアプリが必要です)。

not_authorizedユーザーにアプリの許可を求めなくても、Facebook は上記のメソッドに応答を 返すことで、ユーザーが実際に 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>
于 2012-11-03T20:45:51.937 に答える
0

Facebook の API には、このための機能があります: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

「ステータス」パラメーターを含む JSON を返します。ステータスが「接続済み」の場合、ログインしていることを意味します。ステータスが「不明」の場合、ログインしていないことを意味します。

于 2012-11-03T20:03:44.000 に答える