在 iOS 中从 Facebook 获取个人资料照片
Posted
技术标签:
【中文标题】在 iOS 中从 Facebook 获取个人资料照片【英文标题】:Get Profile Photo from Facebook in iOS 【发布时间】:2015-10-09 11:15:37 【问题描述】:我在我的应用中实现了 Facebook 登录并获取用户的详细信息。
我尝试按以下方式获取用户个人资料图片:
FBimage=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[result valueForKeyPath:@"picture.data.url"]]]];
但这需要将近 3 分钟才能获取图片和低于此行的代码,此行也将停止执行。
帮我解决这个问题
谢谢
【问题讨论】:
使用sdwebimage第三方工具...github.com/rs/SDWebImage 参考下面的答案并使用@Guilherme 的答案查询,参数指定小类型或显式高度和宽度。这将降低图像的大小并加快下载速度。 ***.com/questions/20623728/… 【参考方案1】:您可以设置AsyncImageView
而不是UIImageview
,这样图片就会异步加载
【讨论】:
【参考方案2】:我也有这种图像问题。
使用https://github.com/rs/SDWebImage
[imgViewContactImage sd_setImageWithURL:[NSURL URLWithString:@"imagename"] placeholderImage:[UIImage imageNamed:@"Default"] completed:nil];
先导入“UIImageView+WebCache.h”
请试试这个。
分享您的反馈。
愉快的编码。 :)
【讨论】:
【参考方案3】: FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:@[@"public_profile",@"email",@"picture", @"user_friends"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
if (error)
// Process error
NSLog(@"efv");
else if (result.isCancelled)
// Handle cancellations
NSLog(@"efv");
else
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if ([result.grantedPermissions containsObject:@"email"])
// Do work
[self fetchUserDetail];
[login logOut];
];
-(void)fetchUserDetail
if ([FBSDKAccessToken currentAccessToken])
[[[FBSDKGraphRequest alloc] initWithGraphpath:@"me" parameters:@@"fields": @"id, name,email,gender,picture"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
if (!error)
NSLog(@"fetched user:%@", result);
else
];
【讨论】:
以上是关于在 iOS 中从 Facebook 获取个人资料照片的主要内容,如果未能解决你的问题,请参考以下文章
如何在统一引擎中从 Facebook API 获取用户名和用户个人资料图片?
如何在 ios 中从 facebook 获取朋友的最新状态?
如何在 iOS 9 fb sdk 4.8 或更高版本中从 facebook 获取好友列表?
在 iOS 中从 Twitter 获取用户个人资料详细信息(尤其是电子邮件地址)