ios、facebook 和获取个人资料图片

Posted

技术标签:

【中文标题】ios、facebook 和获取个人资料图片【英文标题】:ios, facebook and getting profile image 【发布时间】:2012-03-12 13:30:02 【问题描述】:

我想获取 facebook 好友的头像。我知道我可以通过获取用户 ID 并使用以下链接在代码中执行此操作:userID/picture">http://graph.facebook.com/userID/picture。有没有更简单的方法来获取直接来自 facebook sdk 的个人资料图片?

【问题讨论】:

【参考方案1】:

Facebook SDK 使用相同的用户 ID 和图形路径。所以我认为这并不容易。但也一样。

【讨论】:

【参考方案2】:

获取头像的 url 呢?然后使用SDWebImage 之类的东西来显示图像并将其缓存到设备。或者任何可以通过将 url 传递给它来显示和缓存图像的开源库?

然后,获取他朋友的用户 ID。将它们保存在 NSArray 中。然后创建一个 fql。

-(void)getFriendsInfo:(NSArray*)userIDs

    //prepare param
    NSMutableString *paramStr = [[NSMutableString alloc]init];
       for (int i = 0; i<[userIDs count]; i++) 
        if ([[userIDs objectAtIndex:i] isKindOfClass:[NSDecimalNumber class]]) 
        NSString *tempParam = [NSString stringWithString:[[userIDs objectAtIndex:i]stringValue]];
        [paramStr appendFormat:@"'%@',", tempParam];
    

    [paramStr appendFormat:@"%@",@"'9999999999999'"];
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               [NSString stringWithFormat:@"SELECT uid, name, pic FROM user WHERE uid IN (%@)", tempParam], @"query",
                               nil];

    //in my case, I declared  Facebook *facebook; in my app delegate using the latest fb sdk
    MyAppDelegate *delegate = (MyAppDelegate *) [[UIApplication sharedApplication] delegate];
    [[delegate facebook] requestWithMethodName:@"fql.query"
                                 andParams:params
                             andHttpMethod:@"POST"
                               andDelegate:self];

在委托方法中处理数据

- (void)request:(FBRequest *)request didLoad:(id)result

【讨论】:

以上是关于ios、facebook 和获取个人资料图片的主要内容,如果未能解决你的问题,请参考以下文章

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

在 iOS 中从 Facebook 获取个人资料照片

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

一次获取更大的 Facebook 个人资料图片和个人数据

无需 facebook api 或 facebook sdk 即可获取 facebook 数字 ID 和个人资料图片

无法从 Facebook 获取用户的个人资料图片。请看详情