Facebook JS API:if_serConnected()死锁内的users_getInfo()

时间:2010-02-10 19:23:44

标签: javascript facebook

我正在尝试将Facebook连接按钮放在网站上,并且一旦连接显示连接的用户名。但由于某些原因,下面的代码在第一次连接时进入一些无限循环,然后工作正常,除非我从我的Facebook个人资料中删除此应用程序,这会导致再次冻结。

这是FB连接按钮上的代码点击:

FB.Connect.requireSession();

这是代码直接在页面上:

<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("123", "/xd_receiver.htm");
    FB.ensureInit(function() {
        FB.Connect.ifUserConnected(function() {
            FB.Facebook.apiClient.users_getInfo(new Array(FB.Connect.get_loggedInUser()),new Array("name"), function(user, exec) {
            console.log("logged in:"+user[0].name);
            });

        }, function(){
            console.log("guest");
        });
    });
</script>

如果我删除FB.Facebook.apiClient.users_getInfo()它工作正常,但我需要以某种方式获取用户名。有什么提示吗?

感谢。

2 个答案:

答案 0 :(得分:0)

为此,您需要将username参数作为数组传递:

FB.Facebook.apiClient.users_getInfo(new Array(FB.Connect.get_loggedInUser()),new Array("name","username"), function(user, exec) {
            console.log("logged in:"+user[0].name);
            });

答案 1 :(得分:0)

你可以这样;

FB.Facebook.apiClient.users_getInfo(loggedInUsersId, ['first_name','last_name','email','sex','birthday','username'], function(result,ex){
       alert(result[0]['username']);
    });