2012-11-20 13 views
14

jestem otwierając sesję facebook za zgodą e-mail tak:Jak uzyskać adres e-mail użytkownika za pomocą pakietu Facebook SDK 3.1 w systemie 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]; 
    }]; 
} 

I wtedy ważny fragment stanu sesji zmienił wygląda następująco:

- (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 = @""; 
      } 
     }]; 
    } 
    ... 

Jak właściwie wyodrębnić e-mail użytkownika ? Czy jest to jedna z podanych zmiennych, czy też muszę wykonać inne połączenie w ramach procedury obsługi zakończenia?

Z góry dziękuję!

Odpowiedz

26

FBGraphUser nie mają właściwość (jestem zakładając, ponieważ jest opcjonalny/dostępny tylko wtedy, gdy poprosił o pozwolenie e-mail), ale powinieneś być w stanie uzyskać dostęp go ze słownika tak:

[user objectForKey:@"email"] 
+0

tak, to załatwiło sprawę! – user1601540

0

należy sprawdzić przed yo zadawać właściwe uprawnienia

Powiązane problemy