2012-06-22 20 views
0

我正在使用PHP SDK进行FQL调用,以拉取用户朋友的列表。它看起来像这样:获取Facebook朋友列表,同时排除一些

$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')); 

有我丢失的东西?谢谢。

+0

我认为不是“不是FQL的支持功能 –

回答

1

“NOT IN”不是FQL的支持功能。在位置92

意外“而不是”你可以做一个简单的选择使用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用于滤除使用IDS:本Graph API Explorer抛出异常:(#601)解析错误。据我所知这是唯一的方法。

我发现了一个相关的帖子:链接here

+0

啊,好的,不是我希望得到的答案,但我怀疑的答案可能是,谢谢你找到我! – keybored

1

这是可能的使用下一个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 

尝试它的Graph API Explorer