2010-02-10 3 views
1

Я пытаюсь установить кнопку Facebook connect на сайт и после подключения подключенного имени пользователя. Но по какой-то причине следующий код переходит в некоторый бесконечный цикл во время первого соединения, а затем отлично работает, если я не удалю это приложение из моего профиля facebook, который снова замерзает.Facebook JS API: users_getInfo() внутри ifUserConnected() deadlock

Вот код на FB Connect кнопку нажмите:

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() он отлично работает, но мне нужно, чтобы получить имя пользователя как-то. Какие-нибудь советы?

Спасибо.

ответ

0

Для этого вам нужно передать параметр имя пользователя в виде массива, как:

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); 
      }); 
0

Вы можете получить, как это;

FB.Facebook.apiClient.users_getInfo(loggedInUsersId, ['first_name','last_name','email','sex','birthday','username'], function(result,ex){ 
     alert(result[0]['username']); 
    }); 
Смежные вопросы