1

我正在尝试开发一个简单的应用程序,当用户连接到它时,它会从 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 方法不适合我正在寻找的其他类型的数据。我的请求的方法是什么?
4

1 回答 1

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"]);
   }];

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

于 2013-08-29T23:22:36.770 回答