Facebook SDK 3.0: how to receive user's e-mail?
if (FBSession.activeSession.isOpen) { [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) { if (!error) { self.nameLabel.text = user.name; self.emailLabel.text = [user objectForKey:@"email"]; } }];}
Because FBGraphUser
doesn't have an email @property
, we can't access the information like with the name (dot-syntax), however the NSDictionary still has the email kv-pair and we can access it like we would do with a normal NSDictionary.
Don't forget to ask for the email permission though:
NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];[FBSession sessionOpenWithPermissions:permissions completionHandler: ^(FBSession *session, FBSessionState state, NSError *error) { [self facebookSessionStateChanged:session state:state error:error]; }];
from this we can get facebook user's basic info and email id.
[FBSession openActiveSessionWithReadPermissions:@[@"basic_info",@"email"] allowLoginUI:YES completionHandler:^(FBSession *session,FBSessionState status,NSError *error){ if(error) { NSLog(@"Facebook Error : %@",error.localizedDescription); } else{ } // Respond to session state changes, // ex: updating the view }];