Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当Facebook徽标=”时,Facebook Connect API未填充用户数据;“真的”;选项被使用_Javascript_Html_Facebook_Xfbml - Fatal编程技术网

Javascript 当Facebook徽标=”时,Facebook Connect API未填充用户数据;“真的”;选项被使用

Javascript 当Facebook徽标=”时,Facebook Connect API未填充用户数据;“真的”;选项被使用,javascript,html,facebook,xfbml,Javascript,Html,Facebook,Xfbml,我正在开发Facebook Connect应用程序。我已经启动并运行了连接按钮,用户可以通过Facebook成功进行身份验证。但是,我很难用XFBML显示他们的个人资料图片和名称。以下是我正在做的: <script type="text/javascript"> function fb_login_handler() { var userbox = document.getElementById( "fb_userbox" ); userbox.innerHTML

我正在开发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>

函数fb_login_handler(){
var userbox=document.getElementById(“fb_userbox”);
userbox.innerHTML=
""
+ ""
+“欢迎,”
+ "";
FB.XFBML.Host.parseDomTree();
}
...
...
FB.init(“[MY_API_KEY]”,“/xd_receiver.htm”,
{“ifUserConnected”:fb_login_handler});

我可以使用Connect按钮成功登录,Javascript回调也会运行,但我的最终结果是:

因此,无论是图片还是名称都没有被填充。即使我硬编码我的FB配置文件ID而不是
loggedinuser
,也会发生同样的情况


更新:如果我从
fb:profile pic
标签中关闭
facebook logo
属性,似乎(在随机乱搞之后)我可以让它工作。将其设置为false(或删除它)会导致用户框正确渲染。但我也需要使用Facebook徽标(

您使用的确切标记可以正常工作。您确定没有收到任何JavaScript错误吗


另外,你能用一个相对老的用户的uid进行测试吗?似乎有。如果你想用我的uid进行测试,我的uid似乎没有这个问题:
685184151
我在我的服务器上试过这段代码,它工作得很好,我的名字和照片都带有fb徽标,我在IE8、Chrome4.0、Safari3.21和Firefox3.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标记。

您是否尝试过查看这是否是特定于浏览器的?这是一个很好的观点,我还没有在其他浏览器中尝试过。我在几天前尝试测试控制台时遇到了相同的问题。我会再试一次,看看是否有问题任何事情都发生了变化——或者如果我在睡眠不足的状态下遗漏了一些细节。看起来这是您提到的bug的一个实例;经过几天的传播,它似乎工作正常。选择一些代码文本并单击“101010”按钮。这将其格式化为代码。