parsing无效会话令牌(代码:209,版本:1.7.1)

我只是更新我的parsing和Facebook的SDK(分别为1.7.1和4.0) – 都是绝对痛苦的工作,我可能会添加!

但是,我现在得到209错误,当我尝试login与Facebook这里是我的代码的一个例子

- (void)loginWithFacebook:(HMSuccessBlock)completion{ NSArray *permissionsArray = @[@"user_about_me",@"user_location",@"user_friends",@"user_relationships"]; // Login PFUser using Facebook [PFFacebookUtils logInInBackgroundWithReadPermissions:permissionsArray block:^(PFUser *user, NSError *error) { if (!user) { NSLog(@"Uh oh. The user cancelled the Facebook login."); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Log In Error" message:error.localizedDescription delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Dismiss", nil]; [alert show]; completion(NO, error); } else if (user.isNew) { NSLog(@"User signed up and logged in through Facebook!"); if (completion) { completion(YES, nil); } } else { NSLog(@"User logged in through Facebook!"); completion(YES, nil); } }]; 

}

下面是哪个[错误]:无效的会话令牌(代码:209,版本:1.7.1)

我最初的想法是,这个问题是与我的代码在应用程序委托 – 在旧版本的facebooksdk我会应用下面的代码

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:[PFFacebookUtils session]]; 

}

然而我似乎无法find任何东西在更新的版本中复制,因此我的代码是

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]; 

}

任何帮助将不胜感激

从模拟器或手机上删除应用程序,然后重build并重新运行应用程序。 有时旧的令牌会被caching。 我刚刚解决了我的应用程序的这个问题。

看看这个页面: https : //parse.com/tutorials/session-migration-tutorial

最有可能您的应用程序使用旧式会话令牌。 您可以在设置应用程序ID和客户端密钥后,将其添加到您的应用程序委托中,以便将其迁移到可撤销会话令牌。

  [PFUser enableRevocableSessionInBackground]; 

Parse的网站有一个关于处理这个错误的部分,可能对您有更多帮助: https : //www.parse.com/docs/ios_guide#sessions-handleerror/iOS

其中一些答案是临时修复 – 但是如果用户注销并重新login,问题可能会再次出现 – 我认为这是由于我允许匿名用户 – 我唯一可以清除的方法是致电login之前[pfuser注销]

我认为还有一些步骤需要遵循:

  1. 您必须在applicationDidBecomeActive添加[FBSDKAppEvents activateApp]

  2. 你应该写
    return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];didFinishLaunchingWithOptions中的方法didFinishLaunchingWithOptions中。

尝试以上步骤应该为你工作。