2009-06-11 4 views
1

Сниппает ниже предполагается получить список друзей из профиля пользователя Facebook в мое приложение:Проблемы с Facebook friends_get функции

<script 
    type="text/javascript" 
    src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"> 
</script> 
<script type="text/javascript"> 
    FB_RequireFeatures(
    ["XFBML"], 
    function() { 
     FB.Facebook.init("xxxxxxxx","xd_receiver.htm"); 
     FB.Facebook.get_sessionState().waitUntilReady(
     function() { 
      FB.Facebook.apiClient.friends_get(
      null, 
      function(result,ex){window.alert("friends list :" + result);} 
     ); 
     } 
    ); 
    } 
); 
</script> 

Вместо имени моих друзей я получаю некоторое целое число. Я не мог догадаться, почему. Было бы неплохо узнать, почему мой подход не работает.

ответ

2

Ваш подход работает, но поскольку Documented on the Facebook Developer Wiki, the function FB.ApiClient.Friends_get, который вы вызываете, не возвращает имена друзей, он возвращает массив своих идентификаторов пользователей, которые являются большими (часто большими, чем целыми) значениями числа. Вам нужно будет использовать дополнительную функцию, FB.ApiClient.users_getInfo, чтобы вернуть имя (имена) пользователей. Вам также не нужно вызывать FB.Facebook.ApiClient, вы можете обойти объект Facebook напрямую с помощью FB.ApiClient.

Вот пример (не проверялось, но должно дать вам идею):

<script type="text/javascript" src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script> 
<script type="text/javascript"> 
    FB_RequireFeatures(
    ["XFBML"], 
    function() { 
     FB.Facebook.init("xxxxxxxx","xd_receiver.htm"); 
     FB.Facebook.get_sessionState().waitUntilReady(
     function() { 
      FB.ApiClient.friends_get(
      null, 
      function(result,ex) { 
       FB.ApiClient.users_getInfo(result, 'name', 
       function(friendNames, exec) { 
        window.alert("first name in friends list: " + friendsNames[0]); 
       } 
      ) 
      } 
     ); 
     } 
    ); 
    } 
); 
</script> 
+0

Просто интересно, если это сработало для вас. Было бы неплохо, если бы вы могли отправить ответ, проголосовать ... что-то ... – defines

0

Я считаю, что вы должны сделать:

FB.ApiClient.friends_get(
      new Array(), 

который я видел на сайте разработчика.

Смежные вопросы