我是 Javscript SDK 的新手,仍在学习并尝试创建移动 Web 应用程序,而我要做的就是检查用户的登录状态。如果用户未登录或未授权应用程序,则显示标准的正常登录按钮,没有额外权限。但是当我测试它时,如果我没有登录并打开 Web 应用程序页面,在单击登录按钮之前,登录对话框会自动弹出两/三次。在我取消或关闭对话框后,当我单击登录按钮时,没有任何反应。我正在使用 Mozilla 用户代理技巧从台式计算机进行测试。如果有人能审查我的代码并引导我走向正确的方向,我将非常感激。谢谢。
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'app_id', status: true, cookie: true, xfbml: true});
FB.getLoginStatus(fbLoginStatus);
FB.Event.subscribe('auth.statusChange', fbLoginStatus);
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
<script>
function fbLoginStatus(response) {
if (response && response.status === 'connected') {
document.getElementById('loginButton').style.display = 'none';
greetUser();
} else {
showLoginButton();
}
}
function authUser() {
FB.login(fbLoginStatus);
}
function showLoginButton() {
document.getElementById('logbutton').innerHTML = (
'<input id="loginButton" type="button" value="Login!" onclick="'+authUser()+'" />'
);
}
</script>
<div id="logbutton"></div>