Facebook标签/页面身份验证问题:getLoginStatus总是返回not_authorized

Facebook Tab / Page Authentication issues: getLoginStatus always returns not_authorized

本文关键字:返回 not authorized getLoginStatus 标签 问题 身份验证 Facebook      更新时间:2023-09-26

我的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文档中看到任何提供任何信息的其他信息。

如果用户已登录并且是某个页面的粉丝,我基本上希望显示内容,如果不是,则隐藏内容。 (通常称为风扇门)

会将其作为评论发布,但我还不能...

在您的选项卡加载并且FB.getLoginStatus()响应指示"not_authorized"(因此,我假设显示您的登录按钮)后 - 如果您然后单击登录按钮会发生什么? 它是否提供Facebook弹出窗口提示以授权该应用程序?(我犹豫要不要问这个问题,但你真的确定你已经授权了这个应用程序吗? 还是它什么都不做?

-在FB.login的回调中。 如果您添加控制台.log(响应.authResponse),它会输出什么?

-我相信channelUrl应该是完全限定的,而你有它的根相对。 不确定这会对您的问题产生任何影响,但可能想尝试一下。. 见 https://developers.facebook.com/docs/javascript/gettingstarted/#channel