如何检测用户登录为页面,FB.getLoginStatus不起作用?

时间:2012-04-25 08:57:31

标签: javascript facebook facebook-javascript-sdk

我们有一段代码:

            checkStatus: function() {

            var self = this;

            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {

                    self.isPage = false;
                    dojo.publish('fb/loginStatus/connected', response.authResponse);

                    if (self.UserRecord === null) {

                        self.buildAll(response.authResponse);

                    } else if (self.UserRecord.user_fid !== response.authResponse.userID){

                        self.clearAll();
                        setTimeout(function(){ self.buildAll(); }, 100);
                    }

                } else {

                    if (response.status === 'not_authorized') {
                        dojo.publish('fb/loginStatus/logged', response);
                    } else {

                        dojo.publish('fb/loginStatus/notLogged', response);
                    }
                }
            },true);
        },

一切正常,直到用户输入我们的Facebook页面记录的应用程序,Fb.getLoginStatus不会启动它的回调。

我的问题是,如何在应用程序中检测或执行其他操作以处理此案例?

干杯, 保罗

1 个答案:

答案 0 :(得分:0)

我认为这是一个错误。去年当用户处于沙盒模式时,FB.getLoginStatus也存在类似的问题。 无论如何,您可以通过以下方式让用户切换回普通用户:

FB.login(function(response) {
    // response handler
});

它会显示一条提示“您正在使用Facebook作为其他用户”,并要求您切换回标准用户。

另一种选择是在特定超时后显示一个facebook社交小部件(例如按钮)。它没有显示类似按钮,而是提供了一个链接,显示“切换回普通用户以使用此社交小部件。”

希望这些建议有所帮助。