2009-06-11 21 views
1

をfriends_get以下のスニペットは、自分のアプリケーションにユーザーの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> 

の代わりに私の友人の名前、私はいくつかの整数を取得します。なぜ私は推測できませんでした。私のアプローチがうまくいかない理由を知っているといいでしょう。

答えて

2

あなたのアプローチはうまくいきますが、あなたが呼び出すDocumented on the Facebook Developer Wiki, the function FB.ApiClient.Friends_getは友人の名前を返しませんので、大きい(しばしば整数より大きい)数値の配列を返します。ユーザーの名前を返すには、追加の関数FB.ApiClient.users_getInfoを使用する必要があります。 FB.Facebook.ApiClientを呼び出す必要もなく、FB.ApiClientを直接使用して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.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(),