この関数は、渡されたパラメーターでデフォルトの sdk キャッシュ トークン状態を上書きすることにより、既存のトークン状態を移行できます。
private final void migrateToken(String accessToken, long expiresMilliseconds,
List<String> permissions, boolean isSSO,
long lastRefreshMilliseconds) {
Bundle bundle = new Bundle();
TokenCache.putToken(bundle, accessToken);
TokenCache.putExpirationMilliseconds(bundle, expiresMilliseconds);
TokenCache.putPermissions(bundle, permissions);
TokenCache.putLastRefreshMilliseconds(bundle, lastRefreshMilliseconds);
TokenCache.putIsSSO(bundle, isSSO);
SharedPreferencesTokenCache cache = new SharedPreferencesTokenCache(this);
cache.save(bundle);
}
アクセス許可を保存していない場合は、トークンを取得したときに要求したアクセス許可のリストを渡すか、要求していないか不明な場合は空の ArrayList を渡す必要があります。
isSSO パラメーターは、Facebook ログイン/Facebook アプリでの SSO を使用してトークンを取得したか (true)、ログイン WebView を使用してトークンを取得したか (false) を指定します。Facebook ログイン経由で取得したトークンは拡張できます。このブール値は、SDK がトークンの拡張を自動的に試行するかどうかを制御します。
この関数は、Session コンストラクターによって読み取られた状態を上書きします。したがって、関数を呼び出す場合は、後でそれを使用するためにセッションを作成する必要があります。ロジックは次のようになります。
Session session = Session.openActiveSession(this);
if ((session == null) && hasOldTokenState()) {
migrateToken(...);
session = Session.openActiveSession(this);
}
// if session is still null, user will have to log in...