【问题标题】:Is it possible to get the profile picture of a page?是否可以获取页面的个人资料图片?
【发布时间】:2014-09-23 10:36:53
【问题描述】:

我正在制作一个使用 Facebook 登录的应用程序。我以正常方式获取用户个人资料图片:

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

但我的一个测试用户只有一个 facebook 页面,而不是 facebook 个人资料。他的用户 ID 正常显示,但我只得到他的剪影图像。

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

编辑:澄清一下,我想获取页面的“个人资料图片”UI 部分中的公开可用图片,但它不与任何特定用户相关联。例如,请参阅https://www.facebook.com/cajitamusic

【问题讨论】:

  • 不。一个页面可以有多个管理员,用户可以管理多个页面。只有实际的页面 ID(或其别名)才能为您提供图片。

标签: facebook facebook-graph-api


【解决方案1】:

我想你可以。您可以使用相同的 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

【讨论】:

    【解决方案2】:

    不,您必须先获得访问用户页面的权限(这可能是使用您的应用的额外门槛)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多