login Facebook registerCallback not called

Here is checklist to check whether your Facebook Sdk setup is correct:-

  1. Check your manifest if you have setup Facebook initialization properly.

    <meta-data android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
    
    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>
    
  2. Create Facebook CallBackManager variable

    var fbCallManager = CallbackManager.Factory.create()
    
  3. On Click of Login with Facebook button. Put your required permission in Array.

      LoginManager.getInstance()
        .logInWithReadPermissions(this, Arrays.asList("public_profile", "email", "user_friends"))
      LoginManager.getInstance().registerCallback(fbCallManager, object : FacebookCallback<LoginResult> {
        override fun onSuccess(result: LoginResult?) {
           //login success
        }
    
        override fun onCancel() {
            //login cancelled by user
    
        }
    
        override fun onError(error: FacebookException?) {
            //login error handle exception
        }
    
    })
    

    }

  4. Add callback result in onActivityResult method

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        fbCallManager.onActivityResult(requestCode, resultCode, data)
    }
    
  5. Provide the Development and Release Key Hashes for Your

    keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME.android\debug.keystore" | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" sha1 -binary | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" base64

Download openssl from here

  1. Setup your Keyhash and Launcher activity in Facebook developer console.

References : Facebook


Missing this on my activity:

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }