在 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 获取用户个人资料详细信息(尤其是电子邮件地址)

在 python-social-auth 中从 google 和 facebook 检索个人资料图片

如何在 ios sdk 中从 facebook 注销