Tytuł mówi wszystko. Używam niestandardowego przycisku, aby pobrać informacje z Facebooka użytkownika (do celów „rejestracji”). Jednak nie chcę, aby aplikacja zapamiętała ostatnio zarejestrowanego użytkownika, ani aktualnie zalogowanego osobiście przez natywną aplikację Facebooka. Chcę, aby aktywność logowania na Facebooku pojawiała się za każdym razem. Dlatego chcę wylogować wszystkich poprzednich użytkowników programowo.
Jak mogę to zrobić? Tak się loguję:
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 );
}
});
}
}
Najlepiej byłoby, gdyby na początku tej metody zadzwonił, aby wylogować poprzednich użytkowników.