iOS 5でfacebook SDK 3を使用しています。毎回ログインウィンドウをユーザーに尋ねたいです。さまざまなユーザーがアプリを使用することを想定してください。以下のコードを試しました。サファリではなく、アプリ内のポップオーバー ビューでログインを表示します。しかし、ログインするか、ウィンドウアプリを閉じるとクラッシュします。
NSArray *permissions = [NSArray arrayWithObjects:@"publish_actions", @"user_photos", nil];
FBSessionLoginBehavior behavior = FBSessionLoginBehaviorForcingWebView;
FBSessionTokenCachingStrategy *tokenCachingStrategy = [[FBSessionTokenCachingStrategy alloc]
initWithUserDefaultTokenInformationKeyName:@"FBTest"];
FBSession *session = [[FBSession alloc] initWithAppID:@"Appid"
permissions:permissions
urlSchemeSuffix:nil
tokenCacheStrategy:tokenCachingStrategy];
[session openWithBehavior:behavior
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
// this handler is called back whether the login succeeds or fails; in the
// success case it will also be called back upon each state transition between
// session-open and session-close
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
NSLog(@"SUCEEES");
[self sessionStateChanged:session state:session.state error:error];
}];