В Android Studio, используя facebook SDK GraphRequest
и токен, я могу получить информацию об учетной записи, кроме пола.
Это мой скрипт, который я пробовал:
GraphRequest request = GraphRequest.newMeRequest(token, (object, response) -> {
Log.e("fbLoginActivity", object.toString());
String fbId;
String fbEmail;
String fbFirst_name;
String fbLast_name;
String fbBirthday;
String fbGender;
String fbPhoto;
try {
String fbId = object.getString("id");
String fbEmail = object.getString("email");
String fbFirst_name = object.getString("first_name");
String fbLast_name = object.getString("last_name");
String fbBirthday = object.getString("birthday");
String fbGender = object.getString("gender"); // <-- ERROR, but when I comment this line, it works (without gender data)
String fbPhoto = "http://graph.facebook.com/" + fbId + "/picture?type=large";
} catch (JSONException e) {
Toast.makeText(mContext, "fb graph JSONException error", Toast.LENGTH_SHORT).show();
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,first_name,last_name,email,gender,birthday,picture.type(large)");
request.setParameters(parameters);
request.executeAsync();
И это мое разрешение на чтение при входе в систему через Faceook:
fbLoginManager.logInWithReadPermissions(
LoginActivity.this,
Arrays.asList("email", "public_profile", "user_birthday", "user_photos")
);
Проблема в этой строке:
String fbGender = object.getString("gender");
Итак, я проверил с помощью object.toString()
и на самом деле в API не выводится свойство пола:
Log.e("fbLoginActivity", object.toString());
Знаете ли вы какой-нибудь рабочий способ получения пола пользователя на Facebook?