Facebook iOS SDK - 获取用户相册

Posted

技术标签:

【中文标题】Facebook iOS SDK - 获取用户相册【英文标题】:Facebook iOS SDK - fetching user albums 【发布时间】:2014-08-18 13:49:40 【问题描述】:

我在我的 iPhone 应用程序中使用 Facebook SDK。我想找到用户的 Facebook 个人资料照片,为此我使用以下代码:

-(IBAction)FacebookLogin:(id)sender
    if (FBSession.activeSession.isOpen) 

        [self findAlbums];
     else 
        NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_photos",
                                nil];

        [FBSession openActiveSessionWithPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                      FBSessionState status,
                                                      NSError *error) 
                                      // if login fails for any reason, we alert
                                      if (error) 


                                       else if (FB_ISSESSIONOPENWITHSTATE(status)) 

                                          [[FBRequest requestForMe] startWithCompletionHandler:
                                           ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) 
                                               if (!error) 
                                                   [self findAlbums];

                                               
                                           ];
                                      
                                  ];
    


-(void)findAlbums 
    [FBRequestConnection startWithGraphpath:@"/me/albums"
                                 parameters:nil
                                 HTTPMethod:@"GET"
                          completionHandler:^(
                                              FBRequestConnection *connection,
                                              id result,
                                              NSError *error
                                              ) 
                              /* handle the result */
                              NSLog(@"result::%@",result);
                          ];


输出----data = ( );

这不会在数据中提供任何专辑。登录的 Facebook 用户的个人资料中有许多相册和照片。为什么会这样?

【问题讨论】:

先在graph api explorer上试试。可能在那里你会发现错误。 【参考方案1】:

只需将查找相册中的代码更改为:

        [FBRequestConnection startWithGraphPath:@"me/albums"
                      completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
                          if (!error) 
                              // Success! Include your code to handle the results here
                              NSLog(@"user events: %@", result);
                              NSArray *feed =[result objectForKey:@"data"];

                              for (NSDictionary *dict in feed) 

                                  NSLog(@"first %@",dict);

                              
                           else 
                              // An error occurred, we need to handle the error
                              // Check out our error handling guide: https://developers.facebook.com/docs/ios/errors/
                              NSLog(@"error %@", error.description);
                          
 ];

【讨论】:

这是一样的...输出---- data = ( );鉴于此权限“user_photos”,我认为这仍然是当前 fbsdk 上的一个错误【参考方案2】:

您必须将您使用的 Facebook 凭据(即 facebook 帐户)添加到 Facebook 开发者帐户设置(即作为管理员或开发者),然后您才能通过您的代码访问相册的照片

【讨论】:

以上是关于Facebook iOS SDK - 获取用户相册的主要内容,如果未能解决你的问题,请参考以下文章

iOS facebook sdk 如何下载相册、个人资料照片数据

Facebook iOS SDK - 分享用户照片

使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册

Facebook iOS SDK 3.2 获取用户新闻提要

如何从 iOS 上的 Facebook SDK 获取用户数据

Facebook iOS sdk 获取用户 ID