2012-11-20 14 views
14

Sto aprendo la sessione di facebook con il permesso e-mail in questo modo:Come ottenere l'email dell'utente con Facebook SDK 3.1 su iOS?

- (void)facebookOpenSession { 
    NSArray *permissions = @[@"email"]; 
    [FBSession openActiveSessionWithReadPermissions:permissions 
             allowLoginUI:YES 
            completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 
     [self sessionStateChanged:session state:state error:error]; 
    }]; 
} 

E poi il frammento importante dello stato della sessione cambiato aspetto:

- (void)sessionStateChanged:(FBSession *)session 
         state:(FBSessionState) state 
         error:(NSError *)error { 
    switch (state) { 
     case FBSessionStateOpen: { 
      [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { 
      if (error) { 
       //error 
      } else { 
       self.myFirstNameLabel.text = user.first_name; 
       self.myLastNameLabel.text = user.last_name; 
       // self.myEmailLabel.text = @""; 
      } 
     }]; 
    } 
    ... 

Come posso effettivamente estrarre le email degli utenti ? È in una delle variabili fornite o devo effettuare un'altra chiamata all'interno del gestore di completamento?

Grazie in anticipo!

risposta

26

FBGraphUser non ha la proprietà (sto assumendo perché la sua facoltativa/disponibile solo se avete chiesto il permesso e-mail), ma si dovrebbe comunque essere in grado di accedervi dal dizionario come questo:

[user objectForKey:@"email"] 
+0

Yep, che ha fatto il trucco! – user1601540

0

Si dovrebbe controllare prima di yo chiedere i permessi giusti

Problemi correlati