私のアプリケーションはFacebookでのログインをサポートしていますが、ログアウトして再度ログインしても、資格情報の入力は求められません。iOS6でネイティブになるユーザー名ですぐにログインします。ネイティブのFacebookアプリケーションのようなものが欲しい:
「notyou」をクリックすると、Facebookは新しいログイン画面を提供します。
私はこのチュートリアルに従いました
問題はここのどこかにあるようです:
- (void)openSession
{
NSArray *permissions=[NSArray arrayWithObjects: @"publish_stream", @"publish_actions",@"create_event", nil];
// [FBSession open]
[FBSession openActiveSessionWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceEveryone
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen: {
NSLog(@"Sesstion opened");
UIViewController *topViewController =
[self.navController topViewController];
NSLog(@"Class: %@", [[topViewController presentedViewController] class]);
if ([[topViewController presentedViewController]
isKindOfClass:[LoginViewController class]])
{
[topViewController dismissViewControllerAnimated:YES completion:nil];
}
ViewController *basic=(ViewController*)topViewController;
NSLog(@"Populating details");
[basic populateUserDetails];
}
break;
case FBSessionStateClosed:
{
NSLog(@"Session closed");
[FBSession.activeSession closeAndClearTokenInformation];
}
case FBSessionStateClosedLoginFailed:
NSLog(@"Login failed");
[self.navController popToRootViewControllerAnimated:NO];
[FBSession.activeSession closeAndClearTokenInformation];
[self showLoginView];
break;
default:
break;
}
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}