代码之家  ›  专栏  ›  技术社区  ›  friedo

使用facebook logo=“true”选项时,facebook connect api不填充用户数据

  •  0
  • friedo  · 技术社区  · 15 年前

    我正在开发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 标签。将其设置为“假”(或将其移除)将导致用户框正确呈现。但我也需要Facebook的标志。:(

    2 回复  |  直到 15 年前
        1
  •  1
  •   Ates Goral    15 年前

    您所使用的确切标记在 this test console . 您确定没有收到任何javascript错误吗?

    此外,您是否可以使用相对较旧的用户的uid进行测试。好像有 a bug with displaying pictures for new users . 我的用户界面似乎没有这个问题,如果你想用我的用户界面测试一下: 685184151

        2
  •  0
  •   Bob Aman    15 年前

    我在我的服务器上尝试过这个代码,它运行得很好,我得到了我的名字和带有FB标志的图片,我在IE8、Chrome4.0、Safari3.21和火狐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">
    

    我想粘贴整个脚本,这样你就可以看到它,但我是这个网站的新手,所以我不知道怎么做(代码标签不起作用)。我没有对您的代码做任何更改,只是添加了我上面提到的标记以及身体和头部标记。

    推荐文章