Como logar programaticamente a partir do Facebook SDK 3.0 sem usar o botão de login / logout do Facebook?
O título diz tudo. Estou usando um botão personalizado para buscar as informações do facebook do usuário (para fins de "inscrição"). No entanto, não quero que o aplicativo se lembre do último usuário registrado, nem da pessoa atualmente conectada por meio do aplicativo nativo do Facebook. Eu quero que a atividade de login do Facebook seja exibida a cada vez. É por isso que quero fazer logout de todos os usuários anteriores programaticamente.
Como eu posso fazer isso? É assim que faço o login:
private void signInWithFacebook() {
SessionTracker sessionTracker = new SessionTracker(getBaseContext(), new StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception) {
}
}, null, false);
String applicationId = Utility.getMetadataApplicationId(getBaseContext());
mCurrentSession = sessionTracker.getSession();
if (mCurrentSession == null || mCurrentSession.getState().isClosed()) {
sessionTracker.setSession(null);
Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build();
Session.setActiveSession(session);
mCurrentSession = session;
}
if (!mCurrentSession.isOpened()) {
Session.OpenRequest openRequest = null;
openRequest = new Session.OpenRequest(RegisterActivity.this);
if (openRequest != null) {
openRequest.setPermissions(null);
openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
mCurrentSession.openForRead(openRequest);
}
}else {
Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
fillProfileWithFacebook( user );
}
});
}
}
Idealmente, eu faria uma chamada no início desse método para fazer logout de usuários anteriores.