如何使用FBGraph-API使用FQL查询获取朋友个人资料图片

时间:2012-09-05 09:26:45

标签: iphone ios facebook-graph-api facebook-fql

我想知道我可以选择在请求时设置图片的宽度和高度。有人建议我使用以下查询来实现这种行为:

SELECT id, width, height, url, is_silhouette, real_width, real_height FROM profile_pic
 WHERE id=me() AND width=155 AND height=50

这是正确的过程吗?根据我的要求,我需要在表格中显示个人资料照片,如附图所示,宽度为155,高度为50。

My Friends List

先谢谢

6 个答案:

答案 0 :(得分:0)

获取Facebook好友信息列表的FQL&他们的照片

NSString *query = @"SELECT uid,name,first_name,last_name,pic_square FROM user WHERE uid IN (";
query = [query stringByAppendingFormat:@"SELECT uid2 FROM friend WHERE uid1 = %@)",userid];
NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                query, @"query",
                                nil];
[_facebook requestWithMethodName: @"fql.query" 
                       andParams: params
                   andHttpMethod: @"POST" 
                     andDelegate:self]; 

您将在以下方法中获得回应

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

例如

{
    "first_name" =User;
    "last_name" = R;
    name = "User R";
    "pic_square" = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash2/.jpg";
    uid = 595sd1;
     }
 {},{} etc

希望这有帮助!

另一种方式是

获取用户的ID(或昵称),并从https://graph.facebook.com/idOrNick/picture

获取图片
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture", id]];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
UIImageView *imgView = [[UIImageView alloc]init];
imgView.image = image;

尺寸

图片大小: square(50×50)

小(50像素宽,可变高度)

大(约200像素宽,可变高度)

并且要应用此类型的大小,您必须将其附加到URL的末尾

例如

http://graph.facebook.com/“id or Nick”/ picture?type = large。 [小/平方/大]

答案 1 :(得分:0)

这是一段代码,可以帮助您获取朋友的个人资料照片。

  1. 从FBGraph API获取朋友的ID,例如

     NSString *id = @"505326797";
    
  2. 然后粘贴以下代码......

     NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture",id]];
    
  3. 这是你可以获取朋友图片的确切网址的方式,在异步图片视图或其他地方使用它......

  4. 也许它会帮助你......

答案 2 :(得分:0)

是。你的代码是正确的。这将得到您的图片的版本约。 155 x 50px。

如果您想获得用户朋友的照片,请使用this query

 SELECT id, width, height, url, is_silhouette, real_width, real_height  
     FROM profile_pic
         WHERE id IN (SELECT uid1 FROM friend WHERE uid2=me()) AND width=155 AND height=50

答案 3 :(得分:0)

使用Graph API字段扩展方法 -

graph.facebook.com/USER_ID?fields=friends.fields(picture.height(50).width(155))

答案 4 :(得分:0)

我也在寻找这个问题的答案。最后我认为这个电话是最好的:

http://graph.facebook.com/me/friends?fields=name,picture.height(200).width(200)

您也可以用某个ID替换“我”。

答案 5 :(得分:0)

根据文档https://developers.facebook.com/docs/reference/api/using-pictures/,有一种更简单的方法。从Facebook获取自定义图像的直接URL是:

https://graph.facebook.com/<USER_ID>/picture?width=<WIDTH>&height=<HEIGHT>

我理解问题是关于使用GraphAPI来获取URL,但是为什么在你可以直接提供图像src URL时再拨打一个电话。

<img src="https://graph.facebook.com/${ID}/picture?width=${customwidth}&height=$customheight" />