0

我想获取有关用户的应用程序信息。他的名字、年龄、位置、性别、头像和其他资料。

现在我正在使用:

-(void)facebookOpenSession{
FBRequest *me = [FBRequest requestForMe];
[me startWithCompletionHandler:^(FBRequestConnection *connection,
                                 id result,
                                 NSError *error) {
    NSDictionary *resultDic = (NSDictionary<FBGraphUser> *) result;
    facebookData = [[NSMutableDictionary alloc]initWithDictionary:resultDic];

    FBRequest *pic = [FBRequest requestForGraphPath:@"me/?fields=picture"];
    [pic startWithCompletionHandler:^(FBRequestConnection *connection,
                                     id result,
                                     NSError *error) {
        NSDictionary *resultDic = (NSDictionary<FBGraphUser> *) result;

        NSDictionary *dic = [resultDic objectForKey:@"picture"];
        NSDictionary *dic2 = [dic objectForKey:@"data"];
        NSString *imgUrl = [dic2 objectForKey:@"url"];
        NSLog(imgUrl);
    }];
}];

}

我为用户个人资料和图像发出了两个请求,我想知道我是否只能拨打一个电话?如果我想获得其他信息,我需要做什么?

4

1 回答 1

1

你注释代码的方式对我来说有点奇怪,所以我像这样重写它:

if (FBSession.activeSession.isOpen) {
    [[FBRequest requestForMe] startWithCompletionHandler:
     ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
         if (!error) {
             self.nameString = user.name;
             self.profileImage.profileID = user.id;
             self.userName = user.username;
         }
     }];
}

它实际上并不比我编写它的方式复杂得多。

快乐编码!

由于注释而添加到代码:

您需要从 Facebook 获取输出。对于图像,您的代码应如下所示:

FBProfilePictureView *profileImage.profileID = user.id;

user.id一旦您发起一个FBRequest.

您并没有真正将 the 转换FBProfilePictureView为 a UIImageView,而是将 the 设置为您创建FBProfilePictureView的 a 的子视图。UIView

另外,您需要设置图片裁剪:

profileImage.pictureCropping = FBProfilePictureCroppingSquare;

FBProfilePictureCroppingSquare是您拥有的几个选择之一。阅读Facebook Developer中的文档以查看您的选项。

于 2013-01-09T22:19:04.820 回答