День рождения пользователя Facebook с помощью графика запроса Android?

Это то, что я делаю, чтобы узнать подробности пользователя. Я могу получить FbId, имя пользователя и имя пользователя, я тоже хочу получить дату рождения пользователя. Пожалуйста, проверьте код ниже Спасибо заранее:-

GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject user, GraphResponse response) {
                            // Application code
                            if (AccessToken.getCurrentAccessToken() != null) {
                                if (user != null) {
                                    Log4Android.e(FaceBookLogin.this, user.toString());
    //                                Log.e("onCompleted ", "  1= > " + new Gson().toJson(user));
                                    facebookUser = new Gson().fromJson(user.toString(), FacebookUser.class);
                                    try {
    //                                    Log.e("onCompleted ", "  2= > " + new Gson().toJson(user));
                                        Log.e("onCompleted ", "  22= > " + new Gson().toJson(facebookUser));
                                        if (facebookUser.getEmail() != null || !facebookUser.getEmail().equals("")) {
                                            checkUserStatus(context, facebookUser.getId());
                                        } else {
                                            UtilitySingleton.getInstance(context).ShowToast(R.string.email_error);
                                        }
                                    } catch (Exception e) {
                                        e.printStackTrace();
                                        facebookUser = getUsableData(response);
                                        UtilitySingleton.getInstance(context).ShowToast(R.string.email_error);
                                    }
                                }
                            }
                        }
                    });

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

3 ответа

Решение

Какие разрешения вы запрашиваете? получение дня рождения пользователя требует разрешения: "user_birthday".

Это решило мою проблему:-

String BIRTHDATE = "user_birthday";

     public static final String[] FACEBOOK_PERMISSIONS = {ValueKeys.PUBLIC_PROFILE, ValueKeys.EMAIL, BIRTHDATE};

LoginManager.getInstance().logInWithReadPermissions((Activity) context, Arrays.asList(FACEBOOK_PERMISSIONS));

Чтобы получить разрешение, зайдите на свою панель управления Facebook> обзор приложения> начните отправку> и выберите user_birthday

Вы можете сделать что-то по этим строкам кода -

if (AccessToken.getCurrentAccessToken() != null) {
     GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(JSONObject user, GraphResponse response) {
                        if (response != null && response.getJSONObject() != null) {

                            try {
                                String birthDate = response.getJSONObject().getString("birthday");
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });

        Bundle parameters = new Bundle();

        parameters.putString("fields","id,name,email,gender,birthday,first_name,last_name");
        request.setParameters(parameters);
        request.executeAsync();
}

И вы всегда должны проверять токен доступа перед отправкой GraphRequest.

Другие вопросы по тегам