2010-02-22 19 views
5

Quelqu'un voit cela?
J'ai une situation où parfois, [session resume] renvoie YES. Je fais un FBRequest.call, et le délégué d'erreur est appelé. L'erreur a 102 "Clé de session non valide ou n'est plus valide". Cependant, si dans la même session j'appelle des FBDialogs (par exemple pour publier dans un flux), tout fonctionne correctement. Je ne vois pas pourquoi ils ne souffrent pas de la même erreur.facebook connecter sur iPhone - faire des appels donne erreur 102 "clé de session invalide ou plus valide", mais les dialogues de flux fonctionnent encore

Des idées?

Oui. Je sais qu'il y a un forum pour facebook connect, mais il faut un certain temps pour recevoir mon mot de passe. (Oui ... il y a une ironie là-bas - pourquoi n'ont-ils pas simplement utilisé Facebook Connect pour leurs forums ... ho hum).

+1

Cela ne répond pas à votre question principale, mais [session resume] fait seulement une vérification locale pour s'assurer vous avez une clé de session enregistrée et que sa date d'expiration n'est pas passée. Il ne fait aucune validation réelle avec Facebook. – chrissr

Répondre

1
- (BOOL)resume { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    FBUID uid = [[defaults objectForKey:@"FBUserId"] longLongValue]; 
    if (uid) { 
    NSDate* expirationDate = [defaults objectForKey:@"FBSessionExpires"]; 
    if (!expirationDate || [expirationDate timeIntervalSinceNow] > 0) { 
     _uid = uid; 
     _sessionKey = [[defaults stringForKey:@"FBSessionKey"] copy]; 
     _sessionSecret = [[defaults stringForKey:@"FBSessionSecret"] copy]; 
     _expirationDate = [expirationDate retain]; 

     for (id<FBSessionDelegate> delegate in _delegates) { 
     [delegate session:self didLogin:_uid]; 
     } 
     return YES; 
    } 
    } 
    return NO; 
} 

Voici le code de cette méthode, je ne pense pas que le code tente de faire le lien avec facebook pour tester, ils obtiennent juste la date d'expiration. Je pense que parfois, lorsque vous vous déconnectez de Facebook, la session n'expire pas mais du côté serveur, ils suppriment votre session