androidfacebook-sdk-3.0

Facebook Status call back not working with fragment


I am trying to use SFB Login callbacks in fragment it logs in successfully (fb shows app as authorized) but callback doesn't work. When I am trying same code with Activity it works. Am I missing something in case of fragment?

public void faceBook(View view) {
    if (FacebookDialog.canPresentShareDialog(getApplicationContext(),
            FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) {
        // Publish the post using the Share Dialog - This is working.
        //When FB not installed else part will execute - There I have issue
    } else {
        Session session = Session.getActiveSession();
        if(!session.getState().isOpened()) {
//here am setting the status call back as third parameter "this" and implemented Session.status call back in my class which is extended a fragment
//so publishFeedDialog did not get called after login
            Session.openActiveSession(this, true, this); 
        } else {
            publishFeedDialog(session);
        }
    }
}

@Override
public void call(Session session, SessionState sessionState, Exception e) {
      //A call supposed to come here after user sign to fb, but that is not happening. (fb shows app as authorized) but callback doesn't work. When I am trying same code with Activity it works
    if(session.getState().isOpened()) {
        publishFeedDialog(session);
    }
}

Solution

  • I had a look in to the facebook Session class and found there is another version of Session.openActiveSession() for to use from fragments

    openActiveSession(context, fragment, allowLoginUI, statusCallback);
    

    make sure the fragment is android.support.v4.app.Fragment