2012-11-20 6 views
14

Ich öffne die Facebook-Sitzung mit der E-Mail-Berechtigung wie folgt:Wie bekomme ich die E-Mail-Adresse des Benutzers mit Facebook SDK 3.1 auf 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]; 
    }]; 
} 

Und dann dem wichtige Schnipsel des Sitzungsstatus geändert sieht aus wie:

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

Wie eigentlich ich den E-Mail des Benutzers extrahiert ? Ist es in einer der bereitgestellten Variablen, oder muss ich einen anderen Aufruf innerhalb des Beendigungshandlers machen?

Vielen Dank im Voraus!

Antwort

26

FBGraphUser nicht die Eigenschaft hat (Ich gehe davon aus, weil sein optional/nur verfügbar, wenn Sie die E-Mail um Erlaubnis gebeten), aber Sie sollten noch in der Lage sein, es so aus dem Wörterbuch zuzugreifen:

[user objectForKey:@"email"] 
+0

Yep, dass der Trick! – user1601540

0

Sie sollten überprüfen, bevor yo die richtigen Berechtigungen fragen

Verwandte Themen