Проблема с функцией friends_get Facebook

голоса
1

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

<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>

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

Задан 11/06/2009 в 14:37
источник пользователем
На других языках...                            


2 ответов

голоса
2

Ваш подход делает работу, а как документированный на Facebook Developer Wiki, функция 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>
Ответил 21/06/2009 в 06:08
источник пользователем

голоса
0

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

FB.ApiClient.friends_get(
            new Array(),

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

Ответил 18/08/2009 в 03:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more