获得'未授权'从Facebook Connect登录返回

What to do after getting 'not_authorized' back from Facebook Connect login

本文关键字:Connect 登录 返回 Facebook 授权 获得      更新时间:2023-09-26

在从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" }
    );  
}

我的想法对吗?

谢谢你的时间和帮助。

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

使用FB.getLoginStatus,您只需检查用户是否获得授权,如果没有:显示一个登录按钮,用户可以单击该按钮登录。当用户进入你的应用程序时,显示登录对话框不是一个好主意。无论如何,首先告诉他应用程序是关于什么的。