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