2011-12-30 19 views
0

ログインしたユーザーに関する情報が自分のWebサイトで取得できないようです。私の例では名前の代わりに "undefined"と表示されています。私は手紙のサンプルコードに従っているので、私が間違っていることを知らない。Facebookから認証されたユーザーの情報を取得する

これはページの<body>からのものです。

<div id="fb-root"></div> 
     <script> 
      window.fbAsyncInit = function() { 
       FB.init({ 
        appId  : 'blahblah', 
        status  : true, 
        cookie  : true, 
        xfbml  : true, 
        oauth  : true 
       }); 

       FB.api('/me', function(response) { 
        alert(response.name); 
       }); 
      }; 
      (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 class="fb-login-button" data-show-faces="true" data-width="200" data-max-rows="1"></div> 

私はログインできますが、アラートには自分の名前は表示されません。

答えて

0

次のようになります:

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     var uid = response.authResponse.userID; 
     var accessToken = response.authResponse.accessToken; 

     FB.api('/me', function(response) { 
      alert(response.name); 
     }); 
    } else { 
     FB.login(see documentation for FB.login); 
    } 
}); 
0

FB.api呼び出しは、FB.init呼び出しの後で実行されています。ログインボタンの前に呼び出されているのでログインボタンには何も結び付けられていません。クリックするとそのボタンが表示されるようにするには、コードを修正してから実行しないと実行しないでくださいログイン

これにコードを変更してみてください:次に、あなたのコードをhttps://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

:あなたが最初FB.getLoginStatus

参照をチェックしたいと思うでしょう、あなたのコードの実行には

FB.Event.subscribe('auth.login', function(response) { 
    FB.api('/me', function(response) { 
     alert(response.name); 
    }); 
});