我正在尝试创建一个 FQL 查询,以选择我在美国且不喜欢某些 Facebook 页面的所有朋友。理想情况下,我想返回用户朋友的选择,排除喜欢 Page X 或 Page Y 的人。
Facebook FQL 非常强大,但在某些功能上也受到限制。例如,不支持“NOT IN”运算符 [Source 1 and 2 ]。在做了一些研究之后,似乎有一种方法可以模仿这种行为。我发布的来源有示例,但简而言之,用户可以提交多查询以选择不在另一组人(查询2)中的一组人(查询1)并返回结果。
到目前为止,这是我的 FQL 查询,但它的行为不像我想要的那样。有什么帮助或建议吗?
SELECT uid, name, pic_square, current_location FROM user
WHERE current_location.country = 'United States' AND
uid IN (
SELECT uid2 FROM friend WHERE uid1 = me()
) AND NOT (
uid IN (
SELECT uid FROM page_fan WHERE uid IN (
SELECT uid2 FROM friend WHERE uid1 = me()
) AND (page_id=40796308305 OR page_id=56381779049)
)
)
这应该是:选择所有住在美国但不喜欢可口可乐或不喜欢百事可乐的朋友。
我见过的其他解决方案是遍历朋友,获取他们的喜欢,然后通过遍历该列表来构建我自己的数据结构。我可以这样做,但这是相当耗时的请求数量——尤其是如果用户有 2-4k 个朋友。
谢谢你们的帮助。非常感谢。