Facebook SDK が自動的に処理しないのは残念です。自分で SDK に組み込む以外に、最も簡単な方法は次のとおりです。
_facebook を割り当てるたびに:
_facebook = [[Facebook alloc] initWithAppId:@"SuperDuperAppID"];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *accessToken = [prefs stringForKey:@"facebook-accessToken"];
NSString *expirationDate = [prefs stringForKey:@"facebook-expirationDate"];
_facebook.accessToken = accessToken;
_facebook.expirationDate = expirationDate;
NSUserDefaults に何も保存していない場合は、nil 値が設定されます。何も起こらなかった。それ以外の場合は、真の値が設定され、[_facebook isSessionValid];
適切な値を示す TRUE を返す必要があります。先に進んで、ログインしているかのように Facebook SDK 呼び出しを行います (ログインしている)。false の場合は、呼び出します
[facebook authorize:permissions delegate:self];
いつものように。
次に、次の Facebook デリゲート メソッドがサポートされていることを確認します。
- (void)fbDidLogin {
NSString *accessToken = _facebook.accessToken;
NSString *expirationDate = _facebook.expirationDate;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:accessToken forKey:@"facebook-accessToken"];
[prefs expirationDate forKey:@"facebook-expirationDate"];
[prefs synchronize];
}
このコードをアプリで使用していますが、完全に機能します。記憶で作ったのでコピペでうまくいかなかったらすみません。どこかにタイプミスがあり、メモリ管理が不適切である可能性があります。オフライン許可を取得しない限り、アクセス トークンの有効期限が切れることを忘れないでください。いずれにせよ、上記のコードはすべてを処理します。