最近、アプリに Facebook 統合を追加しましたが、ユーザーがアプリを再起動した場合を除いて、すべて正常に動作します。アプリを再起動するたびに、Facebook は認証プロセスに戻る必要があります。これには、アプリから Safari/Facebook に切り替えてから、アプリに戻ることが含まれます。Facebook に情報を保存させるにはどうすればよいですか? または、アプリの包括的なアクセス許可を取得して、常に再承認しないようにするにはどうすればよいですか?
applicationDidFinishLaunchingWithOptions:
メソッドからの私のコードは次のとおりです。
facebook = [[Facebook alloc] initWithAppId:@"203604286395694" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];
}
関連する Facebook デリゲート メソッド:
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
- (void) requestDialogButtonClicked {
NSMutableDictionary* params =
[NSMutableDictionary dictionaryWithObjectsAndKeys:
@"invites you to check out cool stuff", @"message",
@"Check this out", @"notification_text",
nil];
[facebook dialog:@"apprequests"
andParams:params
andDelegate:self];
}
- (void)dialogDidComplete:(FBDialog *)dialog {
NSLog(@"dialog completed successfully");
}