如何在我的应用 iPhone 中通过 fbconnect 获取用户的 facebook 个人资料图片?
问问题
14284 次
3 回答
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];
于 2011-05-23T10:33:04.480 回答
16
尝试通过http://developers.facebook.com/docs/api更深入地了解。这是用户图片的链接:
http://graph.facebook.com/000000000/picture
000000000
登录用户的 id在哪里。
Michael Gaylord更新:您还可以将类型附加到请求中以获取不同大小的图像。因此,您的请求将类似于:http ://graph.facebook.com/00000000/picture?type= large 对于大图像。其他选项是小、正常和方形。
于 2010-09-24T07:01:14.150 回答
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 格式的详细信息
于 2010-09-24T07:16:01.680 回答