0

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

足りないものはありますか?ありがとう。

4

2 に答える 2

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で試してみてください。

于 2014-04-04T12:22:00.360 に答える
1

「NOT IN」は、FQL のサポートされている機能ではありません。Graph 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'));

IDを使用してフィルタリングするためにPHPを使用します。私の知る限り、それが唯一の方法です。

関連する投稿を見つけました: link here .

于 2012-06-22T00:54:40.087 に答える