我正在使用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!')
}
})
})
}
任何帮助?
答案 0 :(得分:4)
FB.getLoginStatus
来检查用户是否已获得授权并刷新用户令牌。您可以在FB.init
之后立即使用它,并在用户登录后存储用户ID。
FB.login
必须直接用于用户交互,您在FB.getLoginStatus
的异步(!)回调函数中使用它,而不是在用户点击按钮时直接使用它。
示例:http://www.devils-heaven.com/facebook-javascript-sdk-login/