用户登录时解析获取 facebook 个人资料图片

Posted

技术标签:

【中文标题】用户登录时解析获取 facebook 个人资料图片【英文标题】:Parse get facebook profile picture when user is logged in 【发布时间】:2014-07-21 14:56:51 【问题描述】:

我是解析新手,我刚刚使用解析实现了一个 facebook 登录。在我的应用程序中,我需要登录人的 Facebook 个人资料图片。我已经创建了该方法,但不知道是否有更简单的方法。

此方法需要时间加载,这不是很好。我可以在该人登录时以某种方式加载个人资料图片,然后在另一个视图控制器中使用它吗?

这是我目前的代码:

// After logging in with Facebook
[FBRequestConnection
 startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
     if (!error) 
         NSString *facebookId = [result objectForKey:@"id"];



         image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", facebookId ]]]];


         [self.tableView reloadData];
     
 ];

【问题讨论】:

【参考方案1】:

这实际上与 Parse 无关。它只是 Facebook SDK。

您需要做的是将图像存储在某个地方,以便您可以在它已经存在的情况下获取它。

最简单(但可能不是最好)的方法是使用单例。

创建一个带有属性的单例对象...

@interface MySingleton : NSObject

@property (nonatomic, strong) UIImage *userImage;

+ (instancetype)sharedInstance;

@end

那么你可以在下载之前检查它是否存在...

UIImage *theImage = [[MySingleton sharedInstance] userImage];

if (!theImage) 
    // download the image from Facebook and then save it into the singleton

下载后,您可以从单例中获取它,而无需每次都下载。

【讨论】:

以上是关于用户登录时解析获取 facebook 个人资料图片的主要内容,如果未能解决你的问题,请参考以下文章

iOS:无法将 Facebook 个人资料公开数据作为媒体(图片和视频)

Facebook 登录 - 获取用户数据

如何在统一引擎中从 Facebook API 获取用户名和用户个人资料图片?

Facebook API:如何在facebook中获取登录用户的关注者列表[重复]

解析错误代码 206:无法修改用户(解析服务器)

通过 Facebook Graph API 快速获取个人资料图片返回“不支持的 URL”