我正在尝试使用以下代码获取已登录的Facebook帐户中的所有相册列表... 但不幸的是,我无法获得任何列表,结果是字典..就像
{
data = (
);
}
知道我在下面的代码中做错了什么......
FBRequest* friendsRequest = [FBRequest requestForGraphPath:@"me/albums"];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection*connection,NSDictionary* result,NSError *error) {
if(!error)
{
NSLog(@"%@",result);
//NSArray *albums;
}
这是完整的方法
- (BOOL)retrieveFacebookPhotosWithCompletionBlock:(void (^)(NSArray *, NSError *))completionBlock
{
//FBSession *activeFBSession=[FBSession activeSession];
//activeFBSession.state;
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
if (error) {
NSLog(@"Error");
} else if (session.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error) {
//error
completionBlock(nil, error);
}else{
FBRequest* friendsRequest = [FBRequest requestForGraphPath:@"me/albums"];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error) {
if(error)
completionBlock(nil, error);
else
{
NSLog(@"%@",result);
//NSArray *albums;
}
}];
}
}];
}
}];
return YES;
}
答案 0 :(得分:1)
您需要获得“user_photos”的许可才能获取相册。
当我在没有权限的情况下尝试它时,我收到了与您相同的响应。使用graph api explorer
当我获得权限的新access_token时,我收到来自api的正确回复。
答案 1 :(得分:1)
要打开Facebook会话,要访问照片,您需要user_photos
权限。请尝试更改以下代码。
[FBSession openActiveSessionWithReadPermissions:
[NSArray arrayWithObjects:@"user_photos",nil] allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
//YOUR CODE
}];
答案 2 :(得分:1)
是的,这是因为您提供的权限。如上所述,您必须通过密钥user_photos授予访问照片的权限。您可以参考facebook SDk提供的示例项目,获取更多密钥和每个提供的特定权限。或者Facebook开发者页面。