Несколько раз проблема с устаревшим параметром переходит в GraphRequest, поэтому, чтобы найти его, напишите код проверки ошибки facebook в GraphRequest здесь. Я пишу полный метод с именем makeMeRequest (Accesstoken accesstoke). Здесь токен доступа предоставляется facebook так что вы должны передать ей при вызове этого метода ..йтесь код для этого метода
private void makeMeRequest(AccessToken accesstoken) {
GraphRequest request = GraphRequest.newMeRequest(accesstoken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
FacebookRequestError facebookRequestError = response.getError();
if (facebookRequestError != null) {
Log.e("Error", facebookRequestError + "");
}
try {
System.out.println("GraphRequest response----" + object);
System.out.println("GraphRequest response----" + object.getString("name"));
System.out.println("GraphRequest response----" + object.getString("email"));
} catch (Exception e) {
e.printStackTrace();
}
HashMap<String, String> fb_data = new HashMap<String, String>();
try {
fb_data.put("name", object.getString("name"));
} catch (Exception e) {
fb_data.put("name", "");
}
try {
fb_data.put("id", object.getString("id"));
} catch (Exception e) {
fb_data.put("id", "");
}
try {
fb_data.put("email", object.getString("email"));
} catch (Exception e) {
fb_data.put("email", "");
}
try {
fb_data.put("dob", object.getString("dob"));
} catch (Exception e) {
fb_data.put("dob", "");
}
pdialog.show();
if (fb_data.get("email").equalsIgnoreCase("") || fb_data.get("email") == null) {
checkSocialMedia("facebook", fb_data);
} else {
LoginProcess(fb_data, "facebook");
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "picture,id,name,link,email,gender,birthday,location,first_name,last_name");
request.setParameters(parameters);
request.executeAsync();
}
в этом методе вы можете увидеть код этого код будет возвращать ошибку, и вы получите знать о сообщение об ошибке, и вы можете управлять им
FacebookRequestError facebookRequestError = response.getError();
if (facebookRequestError != null) {
Log.e("Error", facebookRequestError + "");
}
Но если ошибка относится к устаревшему параметру, переданному в объект запроса графа, тогда проверьте его, поскольку он устарел, и если он устарел, он будет печататься в сообщении об ошибке facebook, и вам нужно удалить его из параметра ... Вот код объекта запроса графа от метода makeMeRequest()
Bundle parameters = new Bundle();
parameters.putString("fields", "picture,id,name,link,email,gender,birthday,location,first_name,last_name");
request.setParameters(parameters);
request.executeAsync();
Вам просто нужно удалить этот параметр из
parameters.putString("fields", "picture,id,name,link,email,gender,birthday,location,first_name,last_name");
И ваш фб логин интеграционной работы тонкой
Большое спасибо за ответ сэр , Ошибка заключалась в асинхронных задачах. Я поместил отдельную функцию для заполнения списка и вызвал внутри, получая объект JSON. Работаю сейчас. – user2671899
сэр, вы можете посмотреть на это на досуге. Я последовал за всеми вами упомянутыми вами ответами. http://stackoverflow.com/questions/27119346/strange-behaviour-of-graph-object-while-retrieving-facebook-news-feed – user2671899