如何在 iOS 上使用 Facebook SDK 3.1 获取用户的电子邮件?
Posted
技术标签:
【中文标题】如何在 iOS 上使用 Facebook SDK 3.1 获取用户的电子邮件?【英文标题】:How to get user's email with Facebook SDK 3.1 on iOS? 【发布时间】:2012-11-20 22:22:27 【问题描述】:我正在使用电子邮件权限打开 facebook 会话,如下所示:
- (void)facebookOpenSession
NSArray *permissions = @[@"email"];
[FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
[self sessionStateChanged:session state:state error:error];
];
然后会话状态的重要sn-p改变如下:
- (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 = @"";
];
...
我如何实际提取用户的电子邮件?它是在提供的变量之一中,还是我必须在完成处理程序中进行另一个调用?
提前致谢!
【问题讨论】:
【参考方案1】:FBGraphUser 没有该属性(我假设是因为它是可选的/仅在您请求电子邮件权限时才可用),但您仍然应该能够像这样从字典中访问它:
[user objectForKey:@"email"]
【讨论】:
【参考方案2】:你应该在询问正确的权限之前检查
loginView.readPermissions = @[@"public_profile", @"email"];
【讨论】:
以上是关于如何在 iOS 上使用 Facebook SDK 3.1 获取用户的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
我如何在 iOS sdk 的 facebook 上获取好友生日和用户生日
如何在 ios 的新 facebook sdk 中实现深度链接?
使用 SWIFT 在 iOS SDK for Facebook 上使用 FBSDKGraphRequest
ios 应用程序的用户是不是可以使用 facebook-sdk 在 facebook 上喜欢 URL?