获得' not_authorized'后该怎么办?从Facebook Connect登录返回

时间:2014-10-06 10:18:31

标签: facebook connect

从getLoginStatus得到你的回复后,是否打算调用FB.login?目前,当我这样做时,代码停止。

这是他们点击FB按钮登录的代码,这正确地给了我回复......

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

            logFacebookUserIn(response);            
        } else if (response.status === 'not_authorized') {
        // alert('not_authorized...'); 
         facebookLoginInit();
        } else {
            //alert('not logged into Facebook...');
            facebookLoginInit();
        }
    },true);
}   

处理FB.login的代码,提醒'here4',但不是'here5'......

function facebookLoginInit()
{
    alert('here4');
    FB.login
    (
        function(response)
        {
            alert('here5');
            CL(); 
            if(response.authResponse)
            {
                alert('here6'); logFacebookUserIn(response);
            } else alert('not connected');
        },
        { scope: "email" }
    );  
}

我有正确的想法吗?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

您永远不应该在异步回调函数中调用FB.login,仅限于直接用户交互(鼠标单击)。如果您在用户交互时没有调用它,浏览器会阻止FB.login弹出窗口。

使用FB.getLoginStatus,您只需检查用户是否已获得授权,如果没有:显示用户可以单击登录的登录按钮。当用户输入您的应用程序时,立即显示登录对话框并不是一个好主意,请先告诉他应用程序的内容。