2010-12-02 6 views
2

Je construis une application de base pour l'école qui obtient des informations de facebook en utilisant le facebook-ios-sdk. Cependant, lorsque je me déconnecte de l'application, cela ne me donne pas l'option de me reconnecter, même dans la démo de facebook. Je vérifie pour voir si les sessions sont toujours valides, et ça sort toujours invalide. C'est un autre problème. Voici le code que j'ai. Toute aide est appréciée.facebook-ios-sdk se déconnecter

- (void)viewDidLoad { 
     _facebook = [[Facebook alloc] init]; 

     if ([_facebook isSessionValid] == NO) { 
     //show proper buttons for login 
     loginButton.hidden = NO; 
     logoutButton.hidden = YES; 
     } 

    else { 
    //show proper buttons for logout 
     loginButton.hidden = YES; 
     logoutButton.hidden = NO; 
    } 
    } 

Pour vérifier si je suis connecté ou non. Ensuite, j'ai les boutons appropriés montrant, mais le code ci-dessus renvoie toujours que la session est invalide. Voici les fonctions que j'appelle à connecter ou vous déconnecter:

- (void)login { 
    [_facebook authorize:kAppId permissions:_permissions delegate:self]; 
} 

/** 
* Invalidate the access token and clear the cookie. 
*/ 
- (void)logout { 
    [_facebook logout:self]; 
} 
+0

S'il vous plaît ranger votre poste, ce n'est pas vraiment lisible de cette façon – LordT

+0

Désolé, je ne savais pas que c'était si mauvais. – nicholjs

Répondre

6

L'objet facebook dit qu'il n'a pas session valide parce que son accessToken et/ou expirationDate sont nuls. C'est probablement parce qu'il ne les persiste pas lui-même. Vous devez probablement enregistrer accessToken et expirationDate en gérant la connexion dans la méthode fbDidLogin de FBSessionDelegate. Utilisez NSUserDefaults, par exemple, pour conserver ces valeurs sur le périphérique. Ensuite, chaque fois que vous allouez et initez votre objet _facebook, définissez immédiatement accessToken et expirationDate sur les valeurs que vous avez stockées dans NSUserDefaults.

Cela devrait corriger l'objet facebook en disant isSessionValid = NO toujours. Comme pour l'autre problème, j'ai le même :(

Questions connexes