FBConnect – sessionValid – 删除Facebook网站上的应用程序

在我的iOS iPhone应用程序中,我使用facebook connect。 SSO工作得非常好,我可以发布到墙上等,但有一个问题:

  1. 我开始我的应用程序
  2. 允许Facebook连接
  3. 应用程序中的一切都很好
    但现在 …
  4. 我在facebook网站上删除了该应用程序!
  5. 如果我现在启动我的应用程序 – NSLOG说,FB-Connections就可以了。 ..?

所以我想,如果我在我的帐户中在线删除应用程序,iphone应用程序没有validSession并且必须要求新的登录,但是这失败了。

哪里不对? 我怎样才能以正确的方式检查? 或者sessionValid是如何记录的? 在该方法再次运行之前是否有时间限制? 那么我的支票(在线删除,再次启动应用程序)是快速的吗?

—-更新:

- (void)fbLogin:(id)sender{ NSLog(@"FB Login Alert"); [self checkForPreviouslySavedAccessTokenInfo]; if (!isConnected == YES) { NSLog(@"NO - Facebook Connection"); UIAlertView *popupFacebook = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Headline_FacebookL", @"Headline") message:NSLocalizedString(@"Facebook-Text", @"Facebook") delegate:self cancelButtonTitle:NSLocalizedString(@"later",@"Facebook Login später") otherButtonTitles:NSLocalizedString(@"Facebook",@"Login"), nil]; popupFacebook.tag = alertFacebook; [popupFacebook show]; [popupFacebook release]; } else{ NSLog(@"Facebook Connection OK"); } } (void)checkForPreviouslySavedAccessTokenInfo: -(void)checkForPreviouslySavedAccessTokenInfo{ // Initially set the isConnected value to NO. isConnected = NO; NSLog(@"FB Status erst mal auf NEIN"); // Check if there is a previous access token key in the user defaults file. appDelegate.facebook = [[Facebook alloc] initWithAppId:@"XXXXXXXXX" andDelegate:(AppDelegate *) [[UIApplication sharedApplication] delegate]]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) { appDelegate.facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"]; appDelegate.facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"]; } // Check if the facebook session is valid. // If it's not valid clear any authorization and mark the status as not connected. if (![appDelegate.facebook isSessionValid]) { //[facebook authorize:permissions]; isConnected = NO; NSLog(@"FB NO"); } else { isConnected = YES; NSLog(@"FB YES"); } } 

开关:

 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSLog(@"clicking"); //NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex]; if (alertView.tag == alertWelcome ) { if (buttonIndex == 0) { NSLog(@"close"); } } else if (alertView.tag == alertFacebook ) { if (buttonIndex == 0) { NSLog(@"später"); } if (buttonIndex == 1) { //self.label.text = NSLocalizedString(@"Facebook",@"Login"), [self fbActive:nil]; NSLog(@"Login to FB"); } } } 

权限:

 -(void)fbActive:(id)sender{ if (![appDelegate.facebook isSessionValid]) { NSArray *permissions = [[NSArray alloc] initWithObjects: @"user_likes", @"read_stream", @"user_status", @"publish_stream", //@"publish_actions", //@"manage_pages", @"read_requests", nil]; [appDelegate.facebook authorize:permissions]; NSLog(@"FB - Permissions"); [permissions release]; } }