0

Facebook のドキュメントの例を使用しましたが、Facebook に接続許可を与えた後、ユーザー オブジェクトからユーザー情報を取得できません。ユーザーは定義されていますが、その属性はすべて null です。これが私のコードです:

<html>
    <head>
      <title>My Facebook Login Page</title>
    </head>
    <body>

      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId      : '161718123880158', // App ID
            channelUrl : '', // Channel File
            status     : true, // check login status
            cookie     : true, // enable cookies to allow the server to access the session
            xfbml      : true,  // parse XFBML
            logging     : true
          });
          FB.api('/me', function(user) {
            if (user) {
              var image = document.getElementById('image');
              image.src = 'http://graph.facebook.com/' + user.id + '/picture';
              var name = document.getElementById('name');
              name.innerHTML = user.name
            }
          });
        };
        // 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));
      </script>
<div class="fb-login-button" scope="email,user_checkins">Login with Facebook</div>
      <div align="center">
        <img id="image"/>
        <div id="name"></div>
      </div>

    </body>
 </html>

出力は、名前と空のイメージに対して undef です

4

1 に答える 1

0

これは、アクティブなアクセス トークンを取得していないためです。put a console.log(user) を実行して応答を調べると、エラーが表示されます。

  1. アプリの設定で [Facebook ログインを使用した Web サイト] フィールドを何に設定していますか? 開発中の URL と一致する必要があります。
  2. 次のように、FB.getLoginStatus コールバック関数で FB.api 呼び出しをラップしてみてください。

    FB.getLoginStatus(function() {
       FB.api('/me', function(user) {
          //your code here
       });
     })
    
于 2012-07-17T15:46:25.620 に答える