Comment récupérer l'email de l'user en utilisant Facebook?

Je suis nouveau sur iOS. Je suis capable de chercher last_name , last_name de l'user (Facebook) en utilisant la méthode FBLoginView de FBLoginView mais je veux savoir comment récupérer l'email, l'anniversaire et etc.

Voici mon code:

dans viewDidLoad

 FBLoginView *loginview = [[FBLoginView alloc] init]; loginview.readPermissions=@[@"email"]; loginview.frame = CGRectOffset(loginview.frame, 5, 5); loginview.delegate = self; [self.view addSubview:loginview]; [loginview sizeToFit]; 

Après cela comment et où puis-je récupérer l'adresse e-mail de l'user?

J'ai traversé tellement de messages mais ils n'avaient aucun sens pour moi, alors aidez s'il vous plaît. Merci!

pour le nouveau code facebook SDK ver 4.0 et supérieur

voir ce lien

au dessous de

  // use facebook SDK 3.8 

ajoutez les methods suivantes dans AppDelegate.m

  -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication: (NSSsortingng *)sourceApplication annotation:(id)annotation { return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication fallbackHandler:^(FBAppCall *call) { NSLog(@"Facebook handler"); } ]; } - (void)applicationDidBecomeActive:(UIApplication *)application { [FBAppEvents activateApp]; [FBAppCall handleDidBecomeActive]; // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - (void)applicationWillTerminate:(UIApplication *)application { [FBSession.activeSession close]; // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } 

Regardez le code suivant dans votre viewcontroler .h

 #import <UIKit/UIKit.h> #import <FacebookSDK/FacebookSDK.h> #import <CoreLocation/CoreLocation.h> @interface ViewController : UIViewController<FBLoginViewDelegate> @property (strong, nonatomic) IBOutlet UILabel *lblUserName; @property (strong, nonatomic) IBOutlet UITextField *txtEmailId; @property (strong, nonatomic) IBOutlet UIButton *lblCreate; @property (strong, nonatomic) IBOutlet FBProfilePictureView *profilePic; @property (strong, nonatomic) id<FBGraphUser> loggedInUser; - (IBAction)butCreate:(id)sender; - (void)showAlert:(NSSsortingng *)message result:(id)result error:(NSError *)error; @end 

// applique le code ci-dessous à votre vue controller.m

 - (void)viewDidLoad { [super viewDidLoad]; FBLoginView *loginview=[[FBLoginView alloc]initWithReadPermissions:@[@"email",@"user_likes"]]; loginview.frame=CGRectMake(60, 50, 200, 50); loginview.delegate=self; [loginview sizeToFit]; [self.view addSubview:loginview]; } -(void)loginViewShowingLoggedInUser:(FBLoginView *)loginView { self.lblCreate.enabled=YES; self.txtEmailId.enabled=YES; self.lblUserName.enabled=YES; } -(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user { self.lblUserName.text=[NSSsortingng ssortingngWithFormat:@"%@",user.name]; self.txtEmailId.text=[user objectForKey:@"email"]; //self.profilePic.profileID=user.id; self.loggedInUser=user; } -(void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView { self.txtEmailId.text=nil; self.lblUserName.text=nil; self.loggedInUser=nil; self.lblCreate.enabled=NO; } -(void)loginView:(FBLoginView *)loginView handleError:(NSError *)error{ NSLog(@"Show the Error ==%@",error); } 

Swift 1.2 et plus

Créer un dictionary:

 class ViewController: UIViewController { var dict : NSDictionary! } 

Récupérer datatables:

 if((FBSDKAccessToken.currentAccessToken()) != nil){ FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in if (error == nil){ self.dict = result as NSDictionary println(self.dict) NSLog(self.dict.objectForKey("picture")?.objectForKey("data")?.objectForKey("url") as Ssortingng) } }) } 

La sortie devrait être:

 { email = "[email protected]"; "first_name" = Karthi; id = 924483474253864; "last_name" = keyan; name = "karthi keyan"; picture = { data = { "is_silhouette" = 0; url = "XXXXXXX"; }; }; } 

essaye ça..

 if(FBSession.activeSession.isOpen) { [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error) { if (!error) { NSSsortingng *email = [user objectForKey:@"email"]; } }]; }