1

これは非常に明白な質問だと思いますが、私は完全に困惑しています。アプリの設定を正しくセットアップしたと思いますが、(Javascript SDK を使用して) 自分の Web サイトで自分のアカウントを認証し、次に console.log(me) を認証しようとすると、まだ公開情報しか取得できません。

編集:私の問題は、私のウェブサイトが「紹介ダイアログ」ではなく「現在のダイアログ」を使用していることだと思います。紹介ダイアログは、誰かが Facebook を通じて私の Web サイトに誘導された場合にのみ使用されることを理解していますが、私の Web サイトからも紹介ダイアログを使用する方法が必要であることはわかっています。ユーザーの公開情報でしかサーバーを認証できないのに、なぜ Current Dialog を使用するのでしょうか? 認証ドキュメント (https://developers.facebook.com/docs/authentication/) を確認する必要があるという別の投稿を読みましたが、私が見る限り、参照ダイアログでの承認には何もありません。

Javascript SDK を使用したい。これは可能ですか、それとも Javascript SDK なしで行う必要がありますか?

認証ダイアログには、email、user_about_me、user_likes、user_location、user_website、user_checkins があります。

これが私のコードです:

// 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));

  // Init the SDK upon load
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '464723870207650', // App ID
      channelUrl : '//'+window.location.hostname+'/scripts/channel.php', // Path to your Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // listen for and handle auth.statusChange events
    FB.Event.subscribe('auth.statusChange', function(response) {
      if (response.authResponse) {
        // user has auth'd your app and is logged into Facebook
        FB.api('/me', function(me){
            console.log(me);
        })
      } else {
        // user has not auth'd your app, or is not logged into Facebook
      }
    });
  } 

デバッガーで実行すると、エラーは発生しません。

4

1 に答える 1

2

必要な権限とともにFB.loginメソッドを呼び出すだけです。

function login() {
    FB.login(function(response) {
        console.log("FB.login callback, response: ", response);
    }, { scope: "email,publish_stream,etc" });
}

次の点に注意してください。

FB.login を呼び出すと、JS SDK がポップアップ ウィンドウを開こうとします。そのため、このメソッドはユーザーのクリック イベントの後にのみ呼び出す必要があります。そうしないと、ほとんどのブラウザーでポップアップ ウィンドウがブロックされます。

于 2012-06-02T11:11:49.557 に答える