LoginButton loginButton = findViewById(R.id.login_button); //Setting the permission that we need to read loginButton.setReadPermissions("public_profile","email", "user_birthday", "user_friends"); //Registering callback! loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { //Sign in completed Log.i(TAG, "onSuccess: logged in successfully"); //Getting the user information GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object, GraphResponse response) { // Application code Log.i(TAG, "onCompleted: response: " + response.toString()); try { String email = object.getString("email"); String birthday = object.getString("birthday"); Log.i(TAG, "onCompleted: Email: " + email); Log.i(TAG, "onCompleted: Birthday: " + birthday); } catch (JSONException e) { e.printStackTrace(); Log.i(TAG, "onCompleted: JSON exception"); } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,email,gender,birthday"); request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { Log.d(TAG, "facebook:onCancel"); } @Override public void onError(FacebookException error) { Log.d(TAG, "facebook:onError", error); } }); }