我是 iPhone 开发新手。我正在做一个应用程序,用户通过 Facebook 登录 2 次,一旦他提交了他的凭据并单击登录按钮,我必须从 Facebook 获取名字、电子邮件和性别等详细信息,并且在获取用户后必须被引导到填写了详细信息的应用程序的注册页面,我需要此应用程序与 iPhone 4,4s 和 5 兼容。
我尝试使用 Facebook Graph API 执行此操作,但无法获取,所以任何人都可以帮助我。
提前致谢。
最佳答案
您可以使用以下代码来完成此操作:
[FBSession openActiveSessionWithReadPermissions:@[@"email",@"user_location",@"user_birthday",@"user_hometown"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
switch (state) {
case FBSessionStateOpen:
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error) {
NSLog(@"error:%@",error);
}
else
{
// retrive user's details at here as shown below
NSLog(@"FB user first name:%@",user.first_name);
NSLog(@"FB user last name:%@",user.last_name);
NSLog(@"FB user birthday:%@",user.birthday);
NSLog(@"FB user location:%@",user.location);
NSLog(@"FB user username:%@",user.username);
NSLog(@"FB user gender:%@",[user objectForKey:@"gender"]);
NSLog(@"email id:%@",[user objectForKey:@"email"]);
NSLog(@"location:%@", [NSString stringWithFormat:@"Location: %@\n\n",
user.location[@"name"]]);
}
}];
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
} ];
并且不要忘记在您的代码中导入 FacebookSDK/FacebookSDK.h
。
编辑:Facebook SDK v4 更新(2015 年 4 月 23 日)
现在,Faceboook 发布了具有重大变化的新 SDK。其中 FBSession 类已弃用。因此建议所有用户迁移到新的 sdk 和 API。
下面我已经提到,我们如何通过 Facebook SDK v4 获取用户详细信息:
if ([FBSDKAccessToken currentAccessToken]) {
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@”fetched user:%@”, result);
}
}];
}
但在获取用户详细信息之前,我们必须按照 Documentation here 中所述在我们的代码中集成新的 Facebook 登录信息。 .
Here 是 SDK v4 的变更日志。我建议通过它进行更新。
关于iphone - 在 iOS 中从 Facebook 获取用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16746486/