0

ユーザーがFacebookにログインしているかどうかを確認したい(必ずしも私のサイトからではありません)。スクリプトをデバッグすると、FB.getLoginStatus() の実行に失敗することがわかります。他の FB 関数も試してみましたが、FB.init 以外は認識されないようです。なぜ彼らは失敗するのですか?任意の助けをいただければ幸いです

<div id="fb-root"></div>
<script type="text/javascript" src="//connect.facebook.net/en_US/all.js">
</script>    
<script type="text/javascript">   
           window.fbAsyncInit = function() {
              FB.init({
                appId      : 'my_app_id', // App ID
                status     : true, // check login status
                cookie     : true, // enable cookies to allow the server to access the session
                xfbml      : true  // parse XFBML
              });
            };

            // 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));
        function GetFBLoginStatus() {
        debugger;
        window.fbAsyncInit()
                alert("get status");
        FB.getLoginStatus(function(response) {
            alert("inside call back function"); 
            if (response.status === 'connected') {
              //  var uid = response.authResponse.userID;
               // var accessToken = response.authResponse.accessToken; 
             //   alert("Connected FBID = " + uid);
            } else if (response.status === 'not_authorized') { 
                alert("not_authorized"); 
            } else {
                alert("Not Logged into facebook");
            }
            return true;
        }, true)
    } 
    </script>
4

1 に答える 1

0

編集

コードで重要なものを省略しているようです。これを試してください。私にとってはうまくいきます:

window.fbAsyncInit = function() {
  FB.init({
    appId      : '', // App ID
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    xfbml      : true  // parse XFBML
  });

  // Here we subscribe to the auth.authResponseChange JavaScript event
  FB.Event.subscribe('auth.authResponseChange', function(response) {
    // Here we specify what we do with the response anytime this event occurs. 
    if (response.status === 'connected') {
      // logged into the app
    alert('logged');
    } else if (response.status === 'not_authorized') {
      // In this case, the person is logged into Facebook, but not into the app
    alert('not authorized but logged into fb')
    } else {
      // not logged into Facebook
    alert('not logged');
    }
  });
  };
  // Load the SDK asynchronously
  (function(d){
   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.js";
   ref.parentNode.insertBefore(js, ref);
  }(document));

最後に: 数時間で「重複した質問」に注意してください

編集終了

それはあなたのコードですか?この「my_app_id」

 appId      : 'my_app_id', // App ID

これは、アプリを作成するときに fb が生成する値です。すべての前にこの番号が必要です。

Web 開発者でない場合 (アプリの作成が必要) は、ここにアクセスできます。開発者チームに参加すると、アプリを作成してアプリ ID を取得できます。十分クリア?

于 2013-06-23T19:53:06.970 に答える