iphone - 没有得到所有照片用户在 facebook 中被标记

标签 iphone ios facebook-graph-api facebook

我正在将我的结果与图形 API 浏览器进行比较。我有一个虚拟帐户,其中包含我的 6 张带标签的照片。 从使用 FBGraph 的 iOs 我获得了权限为“user_photos”的访问 token

在调用 me/photos 时,我只返回一张照片。

如果我使用相同的“user_photos”权限从 graph api explorer 生成访问 token ,我会取回所有 6 张照片。

谁能启发我为什么我没有得到所有被标记的照片。

问候

最佳答案

您不会从相册中获取照片,您只会获取非相册中的照片。 获取专辑列表,像这样,

   - (NSMutableArray*)getAlbums{
NSLog(@"get pictures");
NSMutableArray* _albums = [[NSMutableArray alloc] init];
NSString* requestString = [NSString stringWithFormat:@"%@/%@/albums?access_token=%@",FACEBOOK_GRAPH_URL,[defaults valueForKey:@"facebook_id"],[defaults objectForKey:@"FBAccessTokenKey"]];
ASIHTTPRequest* request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:requestString]];
[request startSynchronous];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *dddd = (NSDictionary *) [parser objectWithString:[request responseString] error:nil];
NSDictionary *data = [dddd objectForKey:@"data"];
for(NSDictionary* k in data){
    NSLog(@"album %@, count %@",[k valueForKey:@"id"],[k valueForKey:@"count"]);
    if([k valueForKey:@"count"] && [[k valueForKey:@"count"] intValue] > 0)
        [_albums addObject:[NSMutableDictionary dictionaryWithDictionary:k]];
}
for(NSMutableDictionary* album in _albums){
    NSMutableArray* a = [self getPicturesForAlbum:[album valueForKey:@"id"]];
    [album setValue:a forKey:@"photos"];
}
return _albums;

您将获得 NSDictionaries 的 NSArray,并且在每个 NSDictionaries 中都有一个照片数组作为字典,就像您在上面描述的函数中从 facebook 获取它们一样。

   - (NSMutableArray*)getPicturesForAlbum:(NSString*)albumNo{
NSLog(@"get pictures");
NSMutableArray* pics = [[NSMutableArray alloc] init];
NSString* requestString = [NSString stringWithFormat:@"%@/%@/photos?access_token=%@",FACEBOOK_GRAPH_URL,albumNo,[defaults objectForKey:@"FBAccessTokenKey"]];
ASIHTTPRequest* request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:requestString]];
[request startSynchronous];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *dddd = (NSDictionary *) [parser objectWithString:[request responseString] error:nil];
NSDictionary *data = [dddd objectForKey:@"data"];
for(NSDictionary* k in data){
    for(id i in [k allKeys]){
        if([i isEqualToString:@"source"]){
            NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
            [dict setValue:[k valueForKey:i] forKey:@"photo"];
            [dict setValue:[k valueForKey:@"created_time"] forKey:@"created_time"];
            [dict setValue:[k valueForKey:@"picture"] forKey:@"thumb"];
            if([k valueForKey:@"name"])
                [dict setValue:[k valueForKey:@"name"] forKey:@"name"];
            [pics addObject:dict];
        }
    }        
}
return pics;

然后检查每个相册,其中有您需要的照片。 希望有所帮助。

关于iphone - 没有得到所有照片用户在 facebook 中被标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538638/

相关文章:

iphone - 适用于 iPhone/iPad 的 VPN 客户端

iphone - 谁能告诉错误以下是什么以及如何解决这个问题(文件是通用的(3 片)但不包含 armv7s 片)?

facebook-graph-api - facebook 上的页面类别列表

iphone - 应用程序内的 IOS 应用程序更新检查

ios - 内容拥抱优先级不适用于 UIStackView 中的自定义 View 和标签

Android LoginActivity、Facebook CallbackManager 与 Graph API 请求 : executeAndWait() method does not work

android facebook loginbutton自动登录

iphone - iPhone 上 SQLite 的用户定义函数

ios - 处理 Apple 推送通知服务

objective-c - iOS 将 UIView 平行于 X-Z 平面对齐