下面的代码段应该从用户的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>
而不是我的朋友的名字,我得到一些整数。我无法猜到为什么。很高兴知道为什么我的方法不起作用。
答案 0 :(得分:2)
您的方法确实有效,但是当您调用的Documented on the Facebook Developer Wiki, the function 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>
答案 1 :(得分:0)
我相信你必须这样做:
FB.ApiClient.friends_get(
new Array(),
我在开发者网站上看到的。