Я хочу повторно войти в систему пользователя Facebook в режиме синтаксиса без отображения диалогового окна входа в систему Facebook с использованием сохраненного TOKEN в Parse.Повторное использование сеанса входа в facebook после повторного открытия приложения
Я использую 3 метода для сохранения и восстановления сеанса, но как использовать их в объекте Facebook ParseFacebookUtils
?
/*
* Save the access token and expiry date so you don't have to fetch it each
* time
*/
public static boolean save(Facebook session, Context context) {
Editor editor = context.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.putString(TOKEN, session.getAccessToken());
editor.putLong(EXPIRES, session.getAccessExpires());
editor.putLong(LAST_UPDATE, session.getLastAccessUpdate());
return editor.commit();
}
/*
* Restore the access token and the expiry date from the shared preferences.
*/
public static boolean restore(Facebook session, Context context) {
SharedPreferences savedSession = context.getSharedPreferences(KEY, Context.MODE_PRIVATE);
session.setTokenFromCache(
savedSession.getString(TOKEN, null),
savedSession.getLong(EXPIRES, 0),
savedSession.getLong(LAST_UPDATE, 0));
return session.isSessionValid();
}
public static void clear(Context context) {
Editor editor = context.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
}
И я восстановить сессию нижеследующее перед login-
ParseFacebookUtils.initialize(APP_ID);
// restore session
restore(ParseFacebookUtils.getFacebook(), this);
// login using restored data
ParseFacebookUtils.logIn(permissions, LoginActivity.this,
new LogInCallback() {
@SuppressWarnings("deprecation")
@Override
public void done(ParseUser user, ParseException e) {
// work after login
ParseUser.enableAutomaticUser();
save(ParseFacebookUtils.getFacebook(),this);
}});
Но это не работает, это всегда открывает диалоговое окно входа в систему Facebook.