所以我使用"Facebook-sdk"插件。我像这样初始化Facebook:
FB.init({ appId: 'xxxxxxxxxxx', cookie: true, xfbml: true, oauth: true, status: true });
FB.login(function(){ // get permissions
}, {scope: 'user_friends, read_friendlists, user_photos, email, publish_actions '});
FB.getLoginStatus(function (response) { // to generate AccessToken
if (response.authResponse) {
console.log('LoginStatusResponse: ' + JSON.stringify(response, null, 4));
} else {
console.log('AuthResponse: No');
}
});
然后响应一个按钮点击事件,我正在做:
'click #get_fb_friends' : function(event, template) {
FB.api(
"/me/friends",
function (response) {
if (response && !response.error) {
console.log('GOT them !!!' + JSON.stringify(response, null, 4));
return response;
} else {
console.log('No can do' + JSON.stringify(response, null, 4));
}
});
}
问题是我得到一个空的数据变量:
GOT them !!!{
"data": []
}
PS:查询"/me"
返回关于我自己的所有信息,是"/me/friends"
不起作用。
可能是权限问题
Facebook在几周前改变了它的api,你只能访问你的朋友列表,当他们亲自接受使用你的应用程序。没办法
就像@Wampie说的,API已经改变了,所以你可以尝试使用v1 API(记住你需要请求一个新的访问令牌)。
你仍然可以通过使用apprequests
方法邀请朋友到你的应用程序。
FB.ui({
method: 'apprequests',
message: 'You should learn more about the Platform.'
}, function(){
console.log(arguments);
});
的例子:https://www.fbrell.com/fb.ui/apprequests