Here is my onCreate method:
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_social_login);
init();
hideActiveSocialNetworks();
FacebookSdk.sdkInitialize(getApplicationContext());
CallbackManager callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// not called
Log.d("fb_login_sdk", "callback success");
}
@Override
public void onCancel() {
// not called
Log.d("fb_login_sdk", "callback cancel");
}
@Override
public void onError(FacebookException e) {
// not called
Log.d("fb_login_sdk", "callback onError");
}
});
final Activity activity = this;
findViewById(R.id.fb_login_sdk).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("fb_login_sdk", "click");
List<String> perm = new ArrayList<String>();
perm.add("user_friends");
LoginManager.getInstance().logInWithReadPermissions(activity, perm);
}
});
}
After login the onSuccess(), onCancel(), onError() methods are not fired.
Documentation: https://developers.facebook.com/docs/facebook-login/android/v2.3
Your code will work when you add this to your activity class
Missing this on my activity:
Here is checklist to check whether your Facebook Sdk setup is correct:-
Check your manifest if you have setup Facebook initialization properly.
Create Facebook CallBackManager variable
On Click of Login with Facebook button. Put your required permission in Array.
}
Add callback result in onActivityResult method
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
References : Facebook