How to get user's facebook profile pic via fbconnect in my app iPhone?
Try look deeper through http://developers.facebook.com/docs/api. Here is a link to userpic:
http://graph.facebook.com/000000000/picture
Where 000000000
is an id of user logged.
UPDATE by Michael Gaylord: You can also append the type to the request to get different sized images. So your request will look something like: http://graph.facebook.com/00000000/picture?type=large for a large image. Other options are small, normal and square.
I think the most simple way is this:
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];
Here use these delegate methods to get the picture of user.
When you create session you will get the delegate method called 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];
}
after calling the method requestWithDelegate you'll get response in this method if succeed
- (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];
}
}
}
You'll get all the details in json format you can see in GDB