我正在使用 PHP SDK 进行 FQL 调用以提取用户好友的列表。它看起来像这样:
$all_friends = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY name ASC'));
这很好用,但现在我也想从列表中排除一些朋友。我已经尝试了我认为有效的方法,但它似乎不起作用(它返回一个空列表)。
作为我正在尝试做的事情的一个例子:
$all_friends = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND uid NOT IN (12345,54218,68151) ORDER BY name ASC'));
我错过了什么吗?谢谢。
"
NOT IN"不是FQL支持的功能。图形 API 资源管理器引发异常:(#601) 分析器错误:位置 92 处出现意外的"NOT"。
您可以使用 IN 进行简单的选择
$all_friends = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY name ASC'));
并使用 PHP 使用 id 进行过滤。据我所知,这是唯一的方法。
我找到了一个相关的帖子:链接在这里。
可以使用下一个 FQL 查询:
SELECT uid, name FROM user WHERE uid IN (
SELECT uid2 FROM friend WHERE uid1 = me()
) AND NOT ( uid IN ('13892588847', '10004291510061', '1000753466073'))
ORDER BY name ASC
在图形 API 资源管理器上试用。