Facebook graph api 从facebook graph api v2.3中提取用户好友列表

Facebook graph api 从facebook graph api v2.3中提取用户好友列表,facebook-graph-api,facebook-friends,Facebook Graph Api,Facebook Friends,我正在使用facebook SDK 4.0.1。我已授予用户\朋友的权限,但无法获取该用户的朋友列表。我正在获取用户朋友的计数,但我需要用户朋友的名称和ID private FacebookCallback<LoginResult> mcallback = new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { accessToken

我正在使用facebook SDK 4.0.1。我已授予用户\朋友的权限,但无法获取该用户的朋友列表。我正在获取用户朋友的计数,但我需要用户朋友的名称和ID

private FacebookCallback<LoginResult> mcallback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
accessToken = loginResult.getAccessToken();
Log.d("Access Token", accessToken.toString());
Profile profile = Profile.getCurrentProfile();
// Log.d("PROFILE","PROFILE IMAHE"+profile.getName());
displayWelcomeMessage(profile);

GraphRequestBatch batch = new GraphRequestBatch(
GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject jsonObject, GraphResponse response) {
try {
SharedPreferences.Editor editor = prefs.edit();
editor.putString(Constant.KEY_ID,jsonObject.getString("id"));
editor.putString(Constant.KEY_USER_NAME,jsonObject.getString("name"));
editor.putString(Constant.KEY_USER_FNAME,jsonObject.getString("first_name"));
editor.putString(Constant.KEY_USER_LNAME,jsonObject.getString("last_name"));
// hometown = jsonObject.getJSONObject("hometown");
// editor.putString(Constant.KEY_USER_HOMETOWN,hometown.getString("name"));
editor.putString(Constant.KEY_USER_EMAIL,jsonObject.getString("email"));
editor.putString(Constant.KEY_USER_GENDER,jsonObject.getString("gender"));
// editor.putString(Constant.KEY_USER_DOB,jsonObject.getString("birthday"));

editor.commit();
// town = hometown.getString("name");
// personId = jsonObject.getString("id");
// gen = jsonObject.getString("gender");
// email = jsonObject.getString("email");
Log.d("RESPONCE", "RESPONCE user=" + jsonObject.toString());
Log.d("RESPONCE", "RESPONCE =" + response.toString());

}
catch (JSONException e) {
e.printStackTrace();
}

}
}),
GraphRequest.newMyFriendsRequest(accessToken, new GraphRequest.GraphJSONArrayCallback() {
@Override
public void onCompleted(JSONArray jsonArray, GraphResponse response) {
//Lo Application code for users friends
Log.d("RESPONCE FRIEND", "RESPONCE FRIEND=" + jsonArray.toString());
Log.d("RESPONCE FRIEND", "RESPONCE =" + response.toString());
response.getJSONArray();
}
}));
batch.addCallback(new GraphRequestBatch.Callback() {
@Override
public void onBatchCompleted(GraphRequestBatch graphRequests) {
// Application code for when the batch finishes
}
});
batch.executeAsync();

由于Graph API的v2.0版本,出于隐私原因,只有授权您的应用程序的朋友才有可能访问。更多信息可以在这个和其他许多线程中找到,关于这个完全相同的问题:

我相信在最近的API更改之后,这是不允许的。你能看到的朋友只有那些也注册了你的应用程序的朋友。你也可以使用脚本从用户的朋友列表中抓取数据,尽管这在技术上违反了Facebook的政策。