我想了解有关该用户的应用信息。他的名字,年龄,地点,性别,个人资料图片和其他内容。
目前我正在使用:
-(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);
}];
}];
}
我为用户个人资料提出了两个请求,为图像提出了另一个请求,我想知道我是否只能拨打一个电话?如果我想获得另一个信息我需要做什么?
答案 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中的文档,了解您的选择。