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>

友達の名前の代わりに整数を取得します。理由がわかりませんでした。私のアプローチがうまくいかない理由を知ることができれば幸いです。

4

2 に答える 2

2

あなたのアプローチは機能しますが、Facebook Developer Wiki で文書化されているように、呼び出す関数 FB.ApiClient.Friends_get は友人の名前を返さず、大きな (多くの場合、整数よりも大きい) ユーザー ID の配列を返します。数値。ユーザーの名前を返すには、追加の関数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>
于 2009-06-21T05:08:33.953 に答える
0

私はあなたがしなければならないと信じています:

FB.ApiClient.friends_get(
            new Array(),

開発者サイトで見たもの。

于 2009-08-18T02:18:57.280 に答える