2013-06-18 5 views
1

je suivais toutes les instructions:(BOOL) openSessionWithAllowLoginUI: (BOOL) allowLoginUI est jamais appelé

  • (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI est défini dans mon tête appdelegate et implemenation
  • NSString *const FBSessionStateChangedNotification est unique
  • J'utilise un FBLoginView , tout comme dans l'exemple d'application Scrumptious

Mais l'openSessionWithAllowLoginUI n'est jamais calle ré!

Étant donné que les autorisations sont définies dans cette méthode, je ne peux pas les modifier.

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI 
{ 
    return [FBSession openActiveSessionWithReadPermissions:@[@"basic_info", @"email"] 
               allowLoginUI:allowLoginUI 
             completionHandler:^(FBSession *session, FBSessionState state, NSError *error) 
      { 
       [self sessionStateChanged:session state:state error:error]; 
      }]; 
} 

Que puis-je faire pour résoudre ce problème?

+0

N'a pas eu votre problème. La méthode que vous avez dite que vous devez appeler –

+0

Le problème est que la méthode, bien qu'elle existe et est implémentée, n'est jamais appelée pendant l'exécution. –

+0

Quelqu'un doit appeler cette méthode, il ne recevra pas d'appel automatiquement. En fait, à partir de applicationDidFinishLaunching vous devez appeler cette méthode –

Répondre

2

Essayez de mettre à jour votre facebook iOS sdk à la dernière version. Utilisez @ "Public_profile" à la place de @ "basic_info" comme ceci: FBLoginView * loginView = [[FBLoginView alloc] initWithReadPermissions: @ ["public_profile", @ "email", @ "user_friends"]];

0

Sur le site du développeur Facebook, vous devez démarrer la section lorsque applicationDidFinishLaunching elle-même. Donc, vous devez appeler openSessionWithAllowLoginUI: NO (pas besoin de fournir l'interface de connexion) à partir de là. Ne vous inquiétez pas si l'utilisateur n'est pas connecté dans cette méthode ne fera rien. Dans les autres cas, si l'utilisateur est déjà autorisé, il commencera une session pour l'utilisateur et changera également l'état (vous serez averti) afin que vous puissiez définir le bouton de connexion en conséquence. Enfin wether cette méthode n'a pas pu démarrer une session permettre à l'utilisateur de se connecter à travers le bouton de connexion en appelant openSessionWithAllowLoginUI: OUI

+0

J'ai implémenté le login comme dans l'exemple d'application Scrumptious. Cela se fait en utilisant le storyboard, en ajoutant un 'UIView' et en l'associant à la classe' FBLoginView'. La solution à mon problème de demande d'autorisation est d'ajouter 'self.loginView.readPermissions = @ [@" basic_info ", @" email "];' dans la méthode 'viewDidLoad' (après avoir créé une sortie pour cela). Il est terriblement documenté ... –

+0

@btoueg Si vous avez résolu votre problème, postez-le comme réponse et acceptez-le pour que les autres puissent connaître la solution. – Geek