0

我正在开发 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 徽标才能工作。:(

4

2 回答 2

1

您拥有的确切标记在此测试控制台下可以正常工作。您确定没有收到任何 JavaScript 错误吗?

另外,你能不能用一个比较老的用户的uid进行测试。为新用户显示图片似乎存在错误。我的uid似乎没有这个问题,如果你想用我的测试一下:685184151

于 2009-10-19T18:11:59.320 回答
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 标签。

于 2009-10-21T10:10:58.083 回答