我正在创建一些代码来使用图形api获取好友列表,但没有找到好友列表。我只得到了好友总数。
代码: -
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email"));
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.e("Success1", "Success" + loginResult.getAccessToken().getToken());
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject json, GraphResponse response) {
progressDialog.dismiss();
if (response.getError() != null) {
// handle error
Log.e("getError", "getError");
} else {
Log.e("Success2", "Success");
try {
String jsonresult = String.valueOf(json);
Log.e("JSON", "" + jsonresult);
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/" + json.getString("id") + "/friends",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.e("response", "" + response);
}
}
).executeAsync();
} catch (JSONException e) {
e.printStackTrace();
Log.e("JSONException", "" + e.getMessage());
}
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id, first_name, last_name, email,gender, birthday, location,friends"); // Parámetros que pedimos a facebook
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
Log.e("cancel", "On cancel");
progressDialog.dismiss();
}
@Override
public void onError(FacebookException error) {
Log.e("Error", error.toString());
progressDialog.dismiss();
}
});
输出: -
{"data":[],"summary":{"total_count":475}}, error: null}
答案 0 :(得分:1)
在更新Facebook Graph API 2.0之后,您将只能让您的朋友使用您的应用。
使用Graph API v2.0及更高版本,对/ me / friends的调用仅返回同时使用您的应用的朋友。这些朋友也必须授予user_friends权限。如果您希望让人们在您的应用发布的故事中为他们的朋友添加标签,您可以使用Taggable Friends API。
检查以获取更多信息 https://developers.facebook.com/docs/apps/faq#faq_1694316010830088