Search code examples
androidfacebookandroid-studioparse-platform

parse login through Facebook api 4.0 in android studio


My code is.

 private void facebook() {

 List<String> permissions = Arrays.asList("public_profile", "email");

    ParseFacebookUtils.logInWithReadPermissionsInBackground(this, permissions, new LogInCallback() {

        @Override
        public void done(ParseUser user, ParseException err) {
            progressDialog.dismiss();
            Log.e("Facebook", user + "    " + err.getMessage());

            if (user == null) {
                Log.e("MyApp", "Uh oh. The user cancelled the Facebook login.");
            } else if (user.isNew()) {              

                Log.e("MyApp", "User signed up and logged in through Facebook!");
            } else {
                userinfo(user);
                Log.e("MyApp", "User logged in through Facebook!");
            }
        }
    });

}

this code is always provided user is null.. I have use latest Facebook SDK is

compile 'com.facebook.android:facebook-android-sdk:4.0.1'

and Parse is : Parse-1.9.1.jar

and I have use Android Studio. this method is call when click the button this method is work means facebook popup is open but it always provide user is null. This given is user is null but after refresh parseuser is not null.


Solution

  • Not sure but check the Key Hash settings on https://developers.facebook.com for your app. You need to have both key hashes for release and debug version set in app developer console. It might be that you've just set the key hash for the debug environment. For more see Setting a Release Key Hash. Hope it helps.

      ParseFacebookUtils.logInWithReadPermissionsInBackground(this, Arrays.asList("email", "user_photos", "public_profile", "user_friends")
                , new LogInCallback() {
            @Override
            public void done(ParseUser user, ParseException err) {
                if (user == null) {
                    Toast.makeText(Form.this,"User Already logged up through Twitter!",Toast.LENGTH_LONG).show();
                } else if (user.isNew()) {
    
    
                } else {
    
                    Toast.makeText(Form.this,"User Already logged up through Facebook!",Toast.LENGTH_LONG).show();
    
    
                }
            }
    
        });
    

    Add this also..

      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
     }    
    

    this code is working perfect..