嗨,我有这个代码,我试图使用Facebook JavaScript SDk开发。当我在Firebug中测试它时代码工作正常,但是当我测试它和网页时没有响应。我已经为该特定网站设置了应用程序,但它没有响应
<div id="fb-root"></div>
<script type="text/javascript">
(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>
window.fbAsyncInit = function() {
FB.init({
appId : 'XXXXXXXXXX',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
function updateButton(response) {
var button = document.getElementById('auth_button');
button.onclick = function() {
FB.login(function(response) {
button.innerHTML = 'Logout';
});
}
if (response.status === 'connected') {
button.innerHTML = 'Logout';
button.onclick = function() {
FB.logout(function(response) {
alert('FB.logout');
});
};
} else {
button.innerHTML = 'Login';
button.onclick = function() {
FB.login(function(response) {
alert('FB.login callback');
if (response.status === 'connected') {
alert('User is logged in');
} else {
alert('User is logged out');
}
});
};
}
}
// run it once with the current status and also whenever the status changes
FB.getLoginStatus(updateButton);
FB.Event.subscribe('auth.statusChange', updateButton);
</script>
答案 0 :(得分:0)
尝试同步加载JS SDK。
答案 1 :(得分:0)
你的自我调用函数是错误的 - 关闭的parens排列不正确,因此不会被调用。将其更改为:
(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);
})();
答案 2 :(得分:0)
当我在未在Facebook注册的域上测试页面时,我通常会遇到这些问题。您正在测试的URL是否与Facebook中的域匹配?