Facebook Graph API не возвращает Пол

#android #facebook-graph-api #facebook-login #facebook-graph-api-v2.0

#Android #facebook-graph-api #facebook-вход в систему #facebook-graph-api-версия 2.0 #facebook-войти #facebook-graph-api-v2.0

Вопрос:

Я использую Facebook SDK для входа пользователя. Чтобы получить пол, я добавил user_gender разрешение в список разрешений.

 List<String> accessPermissions = Arrays.asList("user_gender", "email", "user_birthday");
LoginManager.getInstance().logInWithReadPermissions(activity, accessPermissions);
  

После чего я получаю токен доступа. Теперь я передаю этот токен доступа серверной команде. И серверная команда использует Facebook Graph API для получения сведений о пользователе, таких как день рождения, пол, электронная почта и т.д.

Они обращаются к следующему API для получения сведений о пользователе.

 https://graph.facebook.com/me?access_token=dummyaccesstokenamp;fields=name,gender,birthday,email
  

Они могут получать такие данные, как электронная почта и день рождения. Но они не могут получить пол пользователя. Поскольку это GET API, я также вижу, что мы не получаем пол пользователя.

Однако, если мы попытаемся получить подробности в самом Android вместо передачи токена доступа на серверную часть, тогда все будет работать нормально.

       GraphRequest request = GraphRequest.newMeRequest(
              loginResult.getAccessToken(),
              new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(
                    JSONObject object,
                    GraphResponse response) {
                  Log.d("Response", "response is " response.getJSONObject().toString());
                  // Application code
                }
              });
          Bundle parameters = new Bundle();
          parameters.putString("fields", "id,name,link, gender");
          request.setParameters(parameters);
          request.executeAsync();
  

Итак, в чем проблема в Facebook Graph API? Почему он не может вернуть пол? Кто-нибудь еще сталкивался с проблемой?

Комментарии:

1. просмотрел ответы. но здесь я могу получить пол с помощью одного механизма. Но не получить его через Graph API

Ответ №1:

 List<String> accessPermissions = Arrays.asList("user_gender", "email", "user_birthday");
LoginManager.getInstance().logInWithReadPermissions(activity, accessPermissions);

write instead of user_gender and email and user_birthday   

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));

and write the Bundle request params

 Bundle parameters = new Bundle();
        parameters.putString("fields", "id,name,email,gender,birthday");
        request.setParameters(parameters);
        request.executeAsync();