NoneType означает, что вместо экземпляра любого класса или объекта, с которым вы работаете, вы действительно получили None
. Это обычно означает, что вызов вызова или функции выше не сработал или возвратил неожиданный результат.
Наконец, я получил полную информацию о работе и образовании по этому коду:
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
FirstNameSocial = object.optString("first_name");
LastNameSocial = object.optString("last_name");
GenderSocial = object.optString("gender");
EmailSocial = object.optString("email", "");
id = object.optString("id");
if (!EmailSocial.equals("")) {
login_type = Config.Login_Type_facebook;
callAPI(EmailSocial, id, "");
} else {
Toast.makeText(getApplicationContext(), "Permision Denied", Toast.LENGTH_LONG)
.show();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,birthday,gender,first_name,last_name,picture,education,work");
request.setParameters(parameters);
request.executeAsync();
Может помочь кому-то! Счастливое кодирование:)
Убедитесь, что вы авторизовались с этим разрешением: user_education_history
API-вызов, чтобы получить список идентификаторов образования: https://developers.facebook.com/tools/explorer/?method = GET & amp; path = me% 3Ffields% 3Deducation
В вашем коде вам нужно заменить следующую строку одним из полученных идентификаторов образования: {education-experience-id}
Например:
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/12345",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
Log.d("fb response",response.toString());
}
}
).executeAsync();