在Xcode上从Facebook获取用户数据

时间:2013-06-17 17:53:45

标签: xcode facebook facebook-graph-api fetch

我正在尝试开发一个简单的应用程序,当用户连接到Facebook时,它会从Facebook检索数据。

在阅读Facebook关于如何检索用户照片和用户姓名的示例后,我只想获取性别,城市,电子邮件和出生日期等信息,例如。

以下部分是我被困的地方:

- (void)populateUserDetails
{

    if (FBSession.activeSession.isOpen) {


        [[FBRequest requestForMe] startWithCompletionHandler:
         ^(FBRequestConnection *connection,
           NSDictionary<FBGraphUser> *user,
           NSError *error) {
             if (!error) {
                 self.userNameLabel.text = user.name;
                 self.userProfileImage.profileID = user.id;

             }
         }];

    }

}

我的问题是:

  • 我应该用这些数据制作一本字典吗? (性别,城市,电子邮件等) - 另外,我正在使用故事板,我可以使用标签作为Facebook的教程说明所有这些数据吗?
  • 我在几个地方读到,requestForMe方法对于我正在寻找的其他类型的数据来说并不合适。我的要求是什么方法?

1 个答案:

答案 0 :(得分:4)

首先,您必须要求用户获取访问其性别,电子邮件,城市的权限......

您创建具有所需权限的数组并将其添加到 openActiveSessionWithReadPermissions:方法

NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_birthday",@"user_hometown",@"user_location",@"email",@"basic_info", nil];

  [FBSession openActiveSessionWithReadPermissions:permissions
                                     allowLoginUI:YES
                                completionHandler:^(FBSession *session,
                                                    FBSessionState status,
                                                     NSError *error) {
                                      }];

然后发出这样的请求以获取您想要的信息

[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
       NSLog(@"%@", [result objectForKey:@"gender"]);
       NSLog(@"%@", [result objectForKey:@"hometown"]);
        NSLog(@"%@", [result objectForKey:@"birthday"]);
        NSLog(@"%@", [result objectForKey:@"email"]);
   }];

我希望我解决了你的问题。