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 如何下载相册、个人资料照片数据
使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册