0

我已经倾注了 FQL API,完成了谷歌搜索 - 但无法弄清楚如何在便笺中获取标记的人员列表。它不在“注释”表上。并且没有 note_tags 表。

其他人解决了这个问题吗?

4

1 回答 1

0

如果您不害怕占用一些处理能力并且您正在尝试查找被标记的用户朋友,那么这是一种解决方法,您可以查询他们的流:

NSString* fql = [NSString stringWithFormat:
                     @"SELECT source_id, attachment FROM stream WHERE source_id IN (SELECT uid2 FROM friend WHERE uid1 =%@ limit %d", yourUserID, limitInt];

NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"];
[[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params];

然后在附件的“名称”属性中搜索帖子的标题,或在 href 属性中搜索到注释的超链接。

如果你想要他们的名字,你可以做一个多重查询:

NSString* fql = [NSString stringWithFormat:@"\"friendStreams\":\"SELECT source_id, attachment FROM stream WHERE source_id IN (SELECT uid2 FROM friend WHERE uid1 =%@ limit %d\",\"userNames\":\"SELECT name, uid FROM user WHERE uid IN (SELECT source_id FROM #friendStreams)\"", yourUserID, limitInt];

NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"queries"];
        //NSLog(@"creating request delegate");
        [[FBRequest requestWithDelegate:self] call:@"facebook.fql.multiquery" params:params];

不幸的是,据我所知,无法搜索查询中的附件。

当然,这种方法也会调出在他们的墙上分享笔记的朋友……你可以通过限制 created_time 属性来解决这个问题。我不确定这一点,但似乎如果您在创建笔记时被标记,则故事会在实际笔记发布在创建者的墙上之前稍微显示在您的墙上:对于测试笔记,我做了笔记发布到创建者的墙在 1279919730 和关于被标记人墙上的便条的故事是在 1279919725 创建的。也许这有帮助。

于 2010-07-23T21:54:34.370 回答