API Graph Facebook не возвращает пол - PullRequest
0 голосов
/ 09 апреля 2019

Я использую 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=dummyaccesstoken&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();

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

1 Ответ

0 голосов
/ 09 апреля 2019
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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...