当升级IOS Facebook SDK从2.0升级到3.8时,获取相册不起作用

时间:2013-09-25 07:14:46

标签: ios objective-c facebook-graph-api

我曾经允许我的IOS应用程序的用户从他们的Facebook帐户中选择照片。通过Graph API使用以下代码在Facebook旧版本中正常工作

    if(isFbPhotoRequest)
    [facebook requestWithGraphPath:@"me/albums"
                       andDelegate:self];

当我升级到新的Facebook SDK时。我通过查询相册然后搜索这些相册来做到这一点。专辑查询不起作用。我可以通过旧版本的Facebook SDK 2.0实现,但不能通过新的Facebook SDK 3.8实现。

这是我用来拨打电话获取专辑的代码

[FBRequestConnection startWithGraphPath:@"/me/albums"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                          if(error) {

                          }

                          NSArray* collection = (NSArray*)[result data];
                          NSLog(@"You have %d albums", [collection count]);


                      }];

这段代码总是返回0张专辑。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

要获取相册,您需要设置“用户数据权限”。一旦你设置了权限,“/ me / albums”就会给你一些Album对象。

您可以使用以下代码执行此操作: -

         [FBSession openActiveSessionWithReadPermissions:[NSArray arrayWithObject:@"user_photos"] allowLoginUI:NO completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

        [FBRequestConnection startWithGraphPath:@"/me/albums"
                              completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                  if(error) {

                                  }

                              }];
    }];