login Facebook et Twitter avec Parse iOS ne fonctionne qu'une seule fois

J'utilise le login Twitter et Facebook dans le kit Parse SDK. Pour chaque lancement d'application, je peux me connecter à chaque service une fois, mais lorsque je me déconnecte en utilisant [PFUser logOut], je ne peux plus me connecter. Le bloc [PFFacebookUtils logInWithPermissions] n'est jamais appelé avec un user ou une erreur.

Mon code de connection (Facebook) est:

- (IBAction)facebookLogin:(id)sender { NSArray *permissionsArray = @[ @"user_about_me" ]; // Login PFUser using Facebook [PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) { if (!user) { NSSsortingng *errorMessage = nil; if (!error) { NSLog(@"Uh oh. The user cancelled the Facebook login."); errorMessage = @"Uh oh. The user cancelled the Facebook login."; } else { NSLog(@"Uh oh. An error occurred: %@", error); errorMessage = [error localizedDescription]; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Log In Error" message:errorMessage delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Dismiss", nil]; [alert show]; } else { if (user.isNew) { NSLog(@"User with facebook signed up and logged in!"); } else { NSLog(@"User with facebook logged in!"); } } }]; } 

Mon code de déconnection est:

 - (IBAction)loginButton:(id)sender { if([PFUser currentUser]) { [PFUser logOut]; NSLog(@"User is %@", [PFUser currentUser]); NSLog(@"Facebook session is %@", [PFFacebookUtils session]); NSLog(@"Facebook session is %@", FBSession.activeSession.observationInfo); } else { [self performSegueWithIdentifier:@"loginScreenSegue" sender:self]; } } 

Tout se connecte (null).

J'ai supposé que le comportement était le même avec Twitter, qu'il pourrait être lié aux methods liées à OAuth dans mon AppDelegate:

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

Mais ont fait beaucoup de searchs et ne semblent rien manquer …

J'ai aussi ceux-ci dans l'AppDelegate:

 - (void)applicationWillResignActive:(UIApplication *)application { [[PFFacebookUtils session] close]; } - (void)applicationWillTerminate:(UIApplication *)application { [[PFFacebookUtils session] close]; } - (void)applicationDidBecomeActive:(UIApplication *)application { [FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]]; } 

Toute aide serait très appréciée!

Dans votre méthode de déconnection, vous devez effacer le jeton de session Facebook, comme ci-dessous:

 [[FBSession activeSession]closeAndClearTokenInformation]; 

Cela effacera le jeton de la session Facebook active.

OK, j'ai finalement résolu cela. Le problème était que dans la configuration de mon application sur twitter, les permissions étaient définies sur "Lecture seule", pas sur "Lecture et écriture".

La modification de ce paramètre a résolu le problème avec Facebook et Twitter.