2009-10-15 17 views
0

我正在使用Facebook Connect应用程序。我已启动并运行“连接”按钮,用户可以通过Facebook成功进行身份验证。但是,我无法使用XFBML显示其个人资料图片和名称。下面是我在做什么:当使用facebook-logo =“true”选项时,Facebook Connect API未填充用户数据

<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,也会发生同样的情况。

更新:好像(后随机乱搞),我可以得到它的工作,如果我关掉从fb:profile-pic标签facebook-logo属性。将其设置为false(或删除它)会导致用户框正确呈现。但我也需要Facebook徽标才能工作。 :(

+1

您是否试图查看这是否是特定于浏览器的? –

+0

这是一个很好的观点,我还没有在其他浏览器中尝试过。 – friedo

回答

1

,你有优秀作品this test console下确切的标记,你确定你没有得到任何JavaScript错误?

而且,你可以用一个相对较老用户的UID测试。似乎有是a bug with displaying pictures for new users。我的uid似乎没有这个问题,如果你想用我的测试它:685184151

+0

几天前我试过时,我遇到了与测试控制台相同的问题。我会再试一次,看看是否有任何改变 - 或者如果我错过了我的睡眠剥夺状态的一些细节。 – friedo

+0

看起来这是您提到的错误的一个实例;在传播了几天之后,它似乎正常工作。 – friedo

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标签。

+1

选择一些代码文本并点击“101010”按钮。将其格式化为代码。 –