3

Facebook アプリケーション用に次のコードがあります。

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

    // Additional initialization code here

        //***************************************************
        //* FanGate for Facebook
        //***************************************************
        var hideLogin = function(){
           $("#login-fb").hide();
        }

        var showLogin = function(){
           $("#login-fb").show();
        }

        var doLogin = function(){
            FB.login(function(response) {
              if (response.session) {
                   hideLogin();
                   checkLike(response.session.uid)
              } else {
                // user is not logged in
              }
            });
        }

        var checkLike = function(user_id){
            var page_id = "XXXXXXXXX"; //coca cola
            var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id;
            var the_query = FB.Data.query(fql_query);

                  the_query.wait(function(rows) {

                      if (rows.length == 1 && rows[0].uid == user_id) {
                          $("#thirsty_thursdays").show();                  
                      } else {
                          $("#fan_gate").show();
                      }
                  });        
        }


        FB.getLoginStatus(function(response) {
            console.log(response.status);
            if (response.status == 'connected') {
                hideLogin();
                checkLike(response.authResponse.userID)
            } else {
                showLogin();
            }
        }, true);

        $("#login-fb a").click(doLogin);    
  };

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

response.statusいつも戻っnot_authorizedてきますが、その理由は本当にわかりません。私は Facebook にログインしており、アプリケーションは単純なページ タブです。最近、Facebookのアプリを設定に追加して、それが役立つかどうかを確認しましたが、うまくいきません.

Facebook JS SDK ドキュメントに情報を提供する追加情報はありません。

基本的に、ユーザーがログインしていて特定のページのファンである場合はコンテンツを表示し、そうでない場合はコンテンツを非表示にしようとしています。(通称ファンゲート)

4

1 に答える 1