Fonctionnalité de déconnection en utilisant Facebook SDK dans ios

J'ai déconnecté le facebook en utilisant Facebook SDK.But, Encore une fois aller au même count, il affiche les valeurs Deux fois dans la vue tableau (Pour Ex: Prem Kumar.ce nom apparaît deux fois dans la cellule).

// Pour se connecter

- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView { // first get the buttons set for login mode NSLog(@"success"); [HUD showWhileExecuting:@selector(LoadingProcess) onTarget:self withObject:nil animated:YES]; if (FBSession.activeSession.isOpen) { NSLog(@"TOKEN : %@",[[FBSession activeSession]accessTokenData]); FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,picture,birthday,location"]; [friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { NSArray *data = [result objectForKey:@"data"]; for (FBGraphObject<FBGraphUser> *friend in data) { [delegate.friendsListArray addObject:friend]; NSLog(@"%@:%@:%@", [friend name],[friend birthday],[friend id]); } if ([delegate.friendsListArray count]!=0) { NSUserDefaults * standardDefaults=[NSUserDefaults standardUserDefaults]; [[NSUserDefaults standardUserDefaults] synchronize]; [standardDefaults setObject:delegate.friendsListArray forKey:@"FriendsListArray"]; [standardDefaults setBool:YES forKey:@"logged_in"]; [standardDefaults synchronize]; NSLog(@"%@",[standardDefaults objectForKey:@"FriendsListArray"]); BirthdayList * birthdaylist=[[BirthdayList alloc]init]; [self.navigationController pushViewController:birthdaylist animated:NO]; [birthdaylist release]; } else { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Friends not found" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; [alertView release]; } }]; } } 

Dans Paramètres.m

 -(void)LogoutTapped { NSLog(@"Logged out of facebook"); NSUserDefaults * standardDefaults=[NSUserDefaults standardUserDefaults]; [[NSUserDefaults standardUserDefaults] synchronize]; NSArray *keys = [[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]allKeys]copy]; for(NSSsortingng *key in keys) { [standardDefaults removeObjectForKey:key]; [standardDefaults removeObjectForKey:@"FriendsListArray"]; [standardDefaults removeObjectForKey:@"logged_in"]; [standardDefaults synchronize]; NSLog(@"Key Name: %@", key); } [delegate.friendsListArray removeAllObjects]; [keys release]; NSLog(@"%@",[standardDefaults objectForKey:@"FriendsListArray"]); NSLog(@"%@",[standardDefaults objectForKey:@"logged_in"]); NSUserDefaults * userinfodefaults=[NSUserDefaults standardUserDefaults]; NSArray *userkeys = [[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]allKeys]copy]; for(NSSsortingng *userkey in userkeys) { [userinfodefaults removeObjectForKey:userkey]; [userinfodefaults removeObjectForKey:@"userinfo"]; [userinfodefaults removeObjectForKey:@"userbool"]; NSLog(@"key1 Name: %@",userkey); } [delegate.UserListArray removeAllObjects]; [delegate.Setmonthdataarray removeAllObjects]; [delegate.SetMonthlistarray removeAllObjects]; [userinfodefaults synchronize]; [userkeys release]; FBSession *session=[FBSession activeSession]; [session closeAndClearTokenInformation]; [session close]; [[FBSession activeSession] closeAndClearTokenInformation]; [[FBSession activeSession] close]; [FBSession setActiveSession:nil]; [delegate facebook].accessToken=nil; [delegate facebook].expirationDate=nil; NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray* facebookCookies = [cookies cookiesForURL: [NSURL URLWithSsortingng:@"http://login.facebook.com"]]; for (NSHTTPCookie* cookie in facebookCookies) { [cookies deleteCookie:cookie]; } for (NSHTTPCookie *_cookie in cookies.cookies) { NSRange domainRange = [[_cookie domain] rangeOfSsortingng:@"facebook"]; if(domainRange.length > 0){ [cookies deleteCookie:_cookie]; } } UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Logout" message:@"Logout Successfully" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; MainList * mainlist=[[MainList alloc]initWithNibName:@"MainList" bundle:nil]; [self.navigationController pushViewController:mainlist animated:NO]; [mainlist release]; } 

et encore un doute.

Pour connecter le facebook, j'ai utilisé Facebook SDK.

Pour déconnecter le facebook, j'ai utilisé Facebook Library. (Facebook.m, Facebook.h)

Avez-vous un problème pour cela?

Toutes les idées s'il vous plaît aidez-moi.

Le code suivant peut vous aider:

 -(void) fbDidLogout { NSLog(@"Logged out of facebook"); NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) { NSSsortingng* domainName = [cookie domain]; NSRange domainRange = [domainName rangeOfSsortingng:@"facebook"]; if(domainRange.length > 0) { [storage deleteCookie:cookie]; } } }// 

Dans votre context, je suppose que votre appareil n'a pas installé l'application Facebook et que vous ne prévoyez pas d'utiliser l'authentification système iOS 6, ce qui laisserait le comportement de connection par défaut pour utiliser Safari. Si vous deviez effacer les cookies de Safari, cela devrait fonctionner mais pour une expérience plus fluide dans votre scénario, vous devez utiliser la FBSession openWithBehavior:completionHandler: et spécifier un comportement de FBSessionLoginBehaviorForcingWebview afin qu'il utilise la boîte de dialog webview en ligne pour l'authentification.

Voir le SwitchUserSample dans le Facebook SDK Facebook pour un exemple, car cet exemple montre une application qui peut basculer entre plusieurs counts.

https://developers.facebook.com/docs/ios/login/#logout

https://developers.facebook.com/docs/ios/ios-sdk-tutorial/