我正在开发 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>
我可以使用 Connect 按钮成功登录,并运行 Javascript 回调,但我最终得到了这样的结果:
http://www.friedo.com/fbuserbox.png
因此,图片和名称都没有被填充。即使我硬编码我的 FB 个人资料 ID 代替loggedinuser
.
更新:如果我关闭标签中的facebook-logo
属性,似乎(在随机混乱之后)我可以让它工作。fb:profile-pic
将其设置为 false(或将其删除)会导致用户框正确呈现。但我也需要 Facebook 徽标才能工作。:(