iphone - 在 iOS 中从 Facebook 获取用户详细信息

标签 iphone ios objective-c facebook

我是 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/

相关文章:

iphone - 如何处理通讯录变更

ios - 使用 Facebook iOS SDK 从 Facebook 获取用户的兴趣和喜好以及图像

iphone - 如何显示 UITableViewCell 附件复选标记

iphone - 要显示的图像数组

ios - 如何从 Apple iTunes 搜索 API 按专辑 (collectionID) 返回所有歌曲

iphone - 使用私有(private) API 扫描 iOS 7 上的网络 (SSID)

ios - 为按钮提供等宽约束时,自动布局设置不正确

ios - 无法获取Parse block 中NSLog的来源?

ios - iOS 中场景和 View 的区别

objective-c - 尝试使用<AVFoundation/AVFoundation.h>框架播放声音