我正在使用Facebook登录制作应用。我以正常的方式获得用户个人资料照片:
https://graph.facebook.com/[USER_ID]/picture?type=large
但是我的一个测试用户只有一个facebook页面,而不是facebook个人资料。他的userID显示为正常,但我只为他获得了轮廓图像。
在给定页面所有者/管理员的用户ID的情况下,是否有一种方法(理想情况下与用户的上述方法并行)获取与页面关联的图片?
编辑:为了澄清,我想获取一个页面的'profile pic'UI部分中的公开可用的图片,但该图片与任何特定用户无关。例如,请参阅https://www.facebook.com/cajitamusic。
答案 0 :(得分:0)
不,您必须首先要求获得访问用户页面的权限(这可能是使用您应用的额外不受欢迎的阈值)。
答案 1 :(得分:0)
我想你可以。你可以使用相同的 https://graph.facebook.com/[PAGE_ID]/picture?type=large
问题似乎是如何获取页面的对象ID。当我尝试获取城市个人资料图片时,您可以尝试搜索API,因为它适用于我。
fbPageInfo = [FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"search?q=%@&type=page",[cityName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
// Sucess! Include your code to handle the results here
NSLog(@"result: %@", result);
NSArray* pages = (NSArray *)[result data];
if (pages.count > 0) {
NSDictionary *firstCityPage = [pages objectAtIndex:0];
for (NSDictionary *page in pages) {
//NSLog(@"user events: %@", page);
if ([[page objectForKey:@"category"] isEqualToString:@"City"]) {
firstCityPage = page;
break;
}
}
NSString *profileImgUrl = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", [firstCityPage objectForKey:@"id"]];
...
}
} else {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
// do nothing - user default image
fbPageInfo = nil;
NSLog(@"Can't get image for %@. Error:%@", cityName, [error description]);
}
}];
此外,如何获得更大的图片,你可以在这个答案中找到它: