我正在使用Facebook Connect应用。我已启动并运行“连接”按钮,用户可以通过Facebook成功进行身份验证。但是,我无法通过XFBML显示他们的个人资料图片和名称。这就是我正在做的事情:
<script type="text/javascript">
function fb_login_handler() {
var userbox = document.getElementById( "fb_userbox" );
userbox.innerHTML =
"<span>"
+ "<fb:profile-pic uid=loggedinuser facebook-logo='true'></fb:profile-pic>"
+ "Welcome, <fb:name uid=loggedinuser useyou='false'></fb:name>"
+ "</span>";
FB.XFBML.Host.parseDomTree();
}
</script>
...
<div id="fb_userbox">
<fb:login-button onlogin="fb_login_handler();" autologoutlink="1" length="long"></fb:login-button>
</div>
...
<!-- Facebook Connect initialization -->
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript">
</script>
<script type="text/javascript">
FB.init("[MY_API_KEY]", "/xd_receiver.htm",
{ "ifUserConnected" : fb_login_handler } );
</script>
我可以使用“连接”按钮成功登录,然后运行Javascript回调,但我最终得到了这个:
http://www.friedo.com/fbuserbox.png
所以图片和名字都没有填充。即使我将FB配置文件ID硬编码为loggedinuser
,也会发生同样的事情。
更新:如果我关闭facebook-logo
标记中的fb:profile-pic
属性,似乎(在随机乱搞之后)我可以让它工作。将其设置为false(或将其删除)会导致用户框正确呈现。但我也需要Facebook徽标才能工作。 :(
答案 0 :(得分:1)
您在this test console下可以正常使用的标记。您确定没有收到任何JavaScript错误吗?
此外,您可以使用相对较旧的用户的uid进行测试。似乎有a bug with displaying pictures for new users。我的uid似乎没有这个问题,如果你想用我的测试:685184151
答案 1 :(得分:0)
我在我的服务器上尝试了这个代码,它运行得很好,我用fb徽标得到我的名字和图片,我在IE8,Chrome 4.0,Safari 3.21和Firefox 3.5中尝试过,都取得了成功。
您必须添加这些标记,以便FBML标记可以在IE,Safari和其他浏览器的某些版本中运行。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
我想粘贴整个脚本以便您可以看到它,但我是这个网站的新手,所以我不知道如何(代码标签不起作用)。我没有对你的代码做任何改动,只是添加了我上面提到的标签以及body和head标签。