0

I want to integrate Facebook login in my android application. Now I can login to my application using Facebook but now i am getting only id and name. I have added permissions "email", "public_profile", "user_friends". In my facebook application its shows as email, public_profile, user_friends are in Approved Items. Here is the code I am used for Facebook login.

I am using loginWithFacebook() function for facebook login,

    public void loginWithFacebook() {
        session = Session.getActiveSession();
        if (session != null && (session.isOpened() || session.isClosed())) {
            onSessionStateChange(session, session.getState(), null);
        }else
            Session.openActiveSession(this, true, Arrays.asList("email", "public_profile", "user_friends"),this.callback);
   }

//Facebook Session Status Callback

 private Session.StatusCallback callback = new Session.StatusCallback() {
            @SuppressWarnings("deprecation")
            @Override
            public void call(Session session, SessionState state, Exception exception) {
                onSessionStateChange(session, state, exception);
            }
 };

//onSessionStateChange

private static void onSessionStateChange(Session session, SessionState state, Exception exception) {
    if (state.isOpened()) {
        Log.i("FB", "Logged in...");
        Request.newMeRequest(session, new Request.GraphUserCallback() {
            @Override
            public void onCompleted(GraphUser user, Response response) {
                try {
                    String email = null, id = null, first_name = null, last_name = null, gender = null, name = null;
                    Toast.makeText(context, user.asMap().toString(), Toast.LENGTH_LONG).show();
                    if(user.asMap().containsKey("email"))
                        email = (String) user.asMap().get("email");
                    if(user.asMap().containsKey("id"))
                        id = (String) user.asMap().get("id");
                    if(user.asMap().containsKey("name"))
                        name = (String) user.asMap().get("name");
                    if(user.asMap().containsKey("first_name"))
                        first_name = (String) user.asMap().get("first_name");
                    if(user.asMap().containsKey("last_name"))
                        last_name = (String) user.asMap().get("last_name");
                    if(user.asMap().containsKey("gender"))
                        last_name = (String) user.asMap().get("gender");

                    System.out.println("\n*****\nemail " + email+ "\n id " + id+ "\nFirstName " + first_name+ "\nLastName : " + last_name+ "\ngender : " + gender);

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).executeAsync();
    }else if (state.isClosed()) {
        Log.i("FB", "Logged out...");
    }
}

Thanks

SHIDHIN TS
  • 1,557
  • 3
  • 26
  • 58
  • Please refer https://developers.facebook.com/docs/facebook-login/permissions – nishith kumar Sep 28 '16 at 13:13
  • @n9153 I have added "email", "public_profile", "user_friends" permissions. I have mentioned it in the Question. My problem is now I am getting only id and name as response. – SHIDHIN TS Sep 28 '16 at 13:18

0 Answers0