如何在 iOS 中从 Facebook 获取电子邮件地址?

How to Fetch Email Address From Facebook in iOS?

我是 Facebook 登录新手 iOS 对于 Facebook 登录,我制作了一个 FbView,我编写了一个代码来获取电子邮件和用户名,然后它是我想要的用户名,但电子邮件地址是获取为 Null 请为此提供解决方案。

我的代码如下

- (void)viewDidLoad
{
[super viewDidLoad];
self.fbView.readPermissions = @[@"public_profile", @"email", @"user_friends"];
self.fbView.delegate=self;
 if (FBSession.activeSession.state == FBSessionStateOpen
    || FBSession.activeSession.state == FBSessionStateOpenTokenExtended)
{
    [[FBRequest requestForMe] startWithCompletionHandler:
     ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
         if (!error) {
             NSLog(@"Email %@",[user objectForKey:@"email"]);
             NSLog(@"User Name %@",user.username);
         }
     }];
}

我还写了一个获取电子邮件的方法,如

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                        user:(id<FBGraphUser>)user
{
NSLog(@"User Name %@",user.name);
NSLog(@"Email %@",[user objectForKey:@"email"]);
}

但它是给我NULL值请给我解决方案。

按照你的第二种方法,这样试试,

-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user
{
  NSString *userDetails = [NSString stringWithFormat:@"%@",user];
  NSString *fb_userEmail = [user objectForKey:@"email"];
}

userDetails 将 return 您在单个字符串对象中的所有用户详细信息。 fb_userEmail 将 return 用户的电子邮件 ID。