Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Facebook Login CallbackManager FacebookCallback not called?

  • I trying to login with LoginButton but the login callbacks are not being called.(LoginButton is in a Fragment) .
  • FacebookSdk.sdkInitialize is called in the Application onCreate
  • No Callbacks are called after login is completed. Here is the Code:

Activity:

public class FrameActivity extends BaseActivity {   public static CallbackManager callbackManager; @Override protected void onCreate(Bundle savedInstanceState) { // FacebookSdk.sdkInitialize is called in the Application onCreate  callbackManager = CallbackManager.Factory.create(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);     callbackManager.onActivityResult(requestCode, resultCode, data);  } } 

Fragment:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,                          Bundle savedInstanceState) {     // Inflate the layout for this fragment     View view = inflater.inflate(R.layout.fragment_login, container, false);     LoginButton loginButton = (LoginButton) view.findViewById(R.id.login_button);     loginButton.setReadPermissions("user_friends");     loginButton.setReadPermissions("public_profile");     loginButton.setReadPermissions("email");     loginButton.setReadPermissions("user_birthday");     // If using in a fragment     loginButton.setFragment(this);     // Other app specific specialization      // Callback registration     loginButton.registerCallback(FrameActivity.callbackManager, new FacebookCallback<LoginResult>() {         @Override         public void onSuccess(LoginResult loginResult) {   }         @Override         public void onCancel() {             // App code          }          @Override         public void onError(FacebookException exception) {             // App code          }     });     return view; } 
like image 424
Muhammad Sadiq Alvi Avatar asked Apr 10 '15 09:04

Muhammad Sadiq Alvi


1 Answers

Try this:

  1. Init FacebookSdk.sdkInitialize() in fragment's onCreateView().

  2. Next line init callbackManager = CallbackManager.Factory.create();

  3. Implement on onActivityResult() in Fragment class.

  4. Add your callbackManager.onActivityResult(requestCode, resultCode, data); in fragment onActivityResult().

Make sure remove FacebookInit() and callbackManager from activity.

like image 82
Raghu Mudem Avatar answered Sep 21 '22 18:09

Raghu Mudem