Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

registerCallback method for a custom button - facebook sdk

I would like to get user profile data; I'm following this tutorial :

http://code.tutsplus.com/tutorials/quick-tip-add-facebook-login-to-your-android-app--cms-23837

The above tutorial uses registerCallback method like this:

private LoginButton loginButton;
.
.
.
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {

    }

    @Override
    public void onCancel() {

    }

    @Override
    public void onError(FacebookException e) {

    }
});

now, How can I implement this method for a custom Button ?


below link use Facebook class, but for me this class undefined!

// Instance of Facebook Class
private Facebook facebook; 

http://www.androidhive.info/2012/03/android-facebook-connect-tutorial/

like image 732
S.M_Emamian Avatar asked Jun 23 '26 01:06

S.M_Emamian


1 Answers

You can use LoginManager to accomplish it without use the LoginButton.

First, you have to create the CallbackManager as usual:

callbackManager = CallbackManager.Factory.create();

Next, you have to register the callback created with LoginManager instance:

LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {

    }

    @Override
    public void onCancel() {

    }

    @Override
    public void onError(FacebookException error) {
    }
});

And finally, you have to invoke the Facebook login with some permissions, for example:

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));

Don't forget override the onActivityResult method and call onActivityResult method from the CallbackManager:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}
like image 139
jos Avatar answered Jun 26 '26 20:06

jos