Facebook登录弹出窗口被阻止

时间:2014-10-20 20:53:59

标签: facebook angularjs

我正在使用Facebook应用程序对我的用户进行身份验证,但如果用户未登录到Facebook(我正在使用FB.getLoginStatus()进行检查),则会向他显示一个登录按钮。问题是弹出窗口一直被阻止。我不明白为什么,因为我正在ng-click注册Facebook登录。

  <button type="button" ng-click="login()">Log in via Facebook</button>

  ...

  $scope.login = function() {
            FB.getLoginStatus(function(response) {
                if (response.status === 'connected') {
                    $scope.userId = response.authResponse.userID
                    loginSuccess()
                } else
                    FB.login(function(response) {
                        if (response.authResponse) {
                            $scope.userId = response.authResponse.userID
                            loginSuccess()
                        } else {
                            alert('You need to log in and authorize the app, otherwise you won\'t be able to take the quiz!')
                        }
                    })
            })
        }

任何帮助?

1 个答案:

答案 0 :(得分:4)

应在页面加载时使用

FB.getLoginStatus来检查用户是否已获得授权并刷新用户令牌。您可以在FB.init之后立即使用它,并在用户登录后存储用户ID。

FB.login必须直接用于用户交互,您在FB.getLoginStatus的异步(!)回调函数中使用它,而不是在用户点击按钮时直接使用它。

示例:http://www.devils-heaven.com/facebook-javascript-sdk-login/

相关问题