我正在尝试用facebook连接做相当简单的事,但没有运气。
当用户登录时,我想显示用户详细信息(刷新而不重新加载页面),当用户注销时,我需要返回登录状态。
我的代码是
function update_user_box()
{
jQuery('span#loggedin').html('<fb:profile-pic uid="loggedinuser" facebook-logo="true"></fb:profile-pic><fb:login-button size="small" onclick="fbLogout()" autologoutlink="true"></fb:login-button>');
jQuery('span#fbLogin, ul#otherLogin').hide();
jQuery('div#popForecast li.otherLogin, ul.showList li.otherLogin').remove();
jQuery('span#logged').text('1');
FB.XFBML.Host.parseDomTree();
}
function fbLogout()
{
FB.Connect.logout();
jQuery('span#fbLogin').show();
jQuery('span#loggedin').empty();
jQuery('span#logged').text('0');
}
FB.init('c0529b8c11709f2317ae643d854e3866', 'xd_receiver.htm');
FB.ensureInit(function(){
FB.Connect.ifUserConnected(update_user_box);
});
我可以登录和退出用户,但没有其他更改。 我甚至无法触发我的功能警报。
由于某种原因,我正在使用的html不会显示在预标签中,但是,在重新加载页面时,会显示用户(或不显示),因此不会直接从用户触发javascript函数。但刷新页面会启动正确的功能。
我在firebug中遇到的错误是
'fbLogout undefined'
,但很明显它是定义的。我定义它的位置是否重要? 目前所有的javascript / jquery都在脚本标签中。虽然我已经尝试将它移到页面中,但也没有运气。
答案 0 :(得分:3)
原来我在想这个。 FB为你做了很多工作。 我在登录和注销事件上调用函数,但是使用FB.Connect.isUserConnected函数,FB会为您关注此事。
我的代码完全相同,除了 1)我不再在fb:login按钮中有onclick事件 2)FB.Connect.isUserConnected函数现在看起来像这样
FB.Connect.isUserConnected(update_user_box, fbLogout);