是否可以获取页面的个人资料图片?

时间:2014-07-31 13:06:39

标签: facebook facebook-graph-api

我正在使用Facebook登录制作应用。我以正常的方式获得用户个人资料照片:

https://graph.facebook.com/[USER_ID]/picture?type=large

但是我的一个测试用户只有一个facebook页面,而不是facebook个人资料。他的userID显示为正常,但我只为他获得了轮廓图像。

在给定页面所有者/管理员的用户ID的情况下,是否有一种方法(理想情况下与用户的上述方法并行)获取与页面关联的图片?

编辑:为了澄清,我想获取一个页面的'profile pic'UI部分中的公开可用的图片,但该图片与任何特定用户无关。例如,请参阅https://www.facebook.com/cajitamusic

2 个答案:

答案 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]);
              }
          }];

此外,如何获得更大的图片,你可以在这个答案中找到它:

How to get the bigger profile picture of a facebook page