如何通过我的应用程序iPhone中的fbconnect获取用户的Facebook个人资料照片?

时间:2010-09-24 06:42:52

标签: iphone objective-c facebook fbconnect

  

可能重复:
  How-to articles for iPhone development and Objective-C
  Problem getting Facebook pictures via iOS

如何通过我的应用程序iphone中的fbconnect获取用户的脸谱资料?

3 个答案:

答案 0 :(得分:16)

尝试深入了解http://developers.facebook.com/docs/api。这是userpic的链接:

http://graph.facebook.com/000000000/picture

其中000000000是用户登录的ID。

Michael Gaylord

更新: 您还可以将类型附加到请求以获取不同大小的图像。因此,对于大型图片,您的请求将类似于:http://graph.facebook.com/00000000/picture?type=large。其他选项很小,正常和方形。

答案 1 :(得分:16)

我认为最简单的方法是:

NSString *fbuid = @"1234567890";
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?", fbuid]];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *profilePic = [[[UIImage alloc] initWithData:data] autorelease];

答案 2 :(得分:4)

这里使用这些委托方法来获取用户的图片。

创建会话时,您将获得名为didLogin

的委托方法
- (void)session:(FBSession*)session didLogin:(FBUID)uid {

    isLoginSuccessful = TRUE;
    if(isLoginCanceled == FALSE) {
        [self fetchUserDetails];
    }
}

- (void)sessionDidNotLogin:(FBSession*)session {
    isLoginSuccessful = FALSE;
    isLoginCanceled = TRUE;
}

- (void)sessionDidLogout:(FBSession*)session {
    isLoginSuccessful = FALSE;
    isLoginCanceled = TRUE;
}

- (void)fetchUserDetails {

    NSString* fql = [NSString stringWithFormat:
                     @"select name,sex,pic from user where uid == %lld", _session.uid];

    NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"];
    [[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params];
}

调用方法requestWithDelegate后,如果成功,您将在此方法中获得响应

- (void)request:(FBRequest*)request didLoad:(id)result {
    if ([request.method isEqualToString:@"facebook.fql.query"]) {
        NSArray* users = result;
        NSDictionary* user = [users objectAtIndex:0];
                NSLog(@"User Details %@",user);
        if(fbUserDetails == nil) {
            self.fbUserDetails = [[NSDictionary alloc] initWithDictionary:user];
        }
        if(isLoginSuccessful) {
            NSString *fbUid = [NSString stringWithFormat:@"%lld",_session.uid];
            self.FBUserID = fbUid;
            [_delegate loggedInFaceBookSuccessfully:fbUid];
        }

    }
}

您将获得您在GDB中可以看到的json格式的所有详细信息