FBRequest获取参数问题

时间:2013-01-09 22:15:50

标签: iphone ios objective-c facebook-graph-api

我想了解有关该用户的应用信息。他的名字,年龄,地点,性别,个人资料图片和其他内容。

目前我正在使用:

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

}

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

1 个答案:

答案 0 :(得分: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就来自Facebook。

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

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

profileImage.pictureCropping = FBProfilePictureCroppingSquare;

FBProfilePictureCroppingSquare是您拥有的一些选择之一。阅读Facebook Developer中的文档,了解您的选择。