2012-05-06 27 views
1

私のアプリのユーザーがでない人を検索することを許可します。の名前の友達。Facebook API検索結果フィルタ

は、私はこのクエリを使用してユーザーのために公共の検索を行うことができます理解:これは私の名前markALLユーザーを与え、ユーザーに非常に関係がない

search?q=mark&type=user 

私は、彼らが が名前で持つ友人であるユーザ検索するには、このを使用

:私は、ユーザーがこのようなものを使用して友人の友人を検索できるようにコンテンツがあると思い

fql?q= 
    SELECT uid, name, pic_square 
    FROM user 
    WHERE strpos(lower(name),lower('mark')) >=0 AND 
     uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 

を:

fql?q= 
    SELECT uid, name, pic_square 
    FROM user 
    WHERE strpos(lower(name),lower('mark')) >=0 AND 
     uid IN (SELECT uid2 
       FROM friend 
       WHERE uid1 IN (SELECT uid2 
           FROM friend 
           WHERE uid1 = me())) 

ですが、残念ながら次のエラーが返されます。

{ 
"message": "(#604) Can't lookup all friends of #####. 
    Can only lookup for the logged in user or the logged in user's friends that 
    are users of your app.", 
"type": "OAuthException", 
"code": 604 
} 

私はこのエラーを理解しています。私は公の検索を使わなければならないようです。

「マーク」を含む名前の大学XXXに所属するすべてのユーザーの公開検索を行うにはどうすればよいですか?

また、特定のユーザーに関連する公開検索をフィルタリングする代替手段はありますか?

答えて

0

これはちょっと...(これだけ何人かの友人や友人を示し、私はそれはしかし、それらをフィルタリングしています方法を考え出していないようです)

fql?q= 
    SELECT uid, name 
    FROM user 
    WHERE strpos(lower(name),lower('mark')) >=0 AND 
     (uid IN (SELECT uid2 
       FROM friend 
       WHERE uid1 = me()) OR 
     (uid IN (SELECT uid2 
       FROM friend 
       WHERE uid1 IN (SELECT uid 
           FROM user 
           WHERE uid IN (SELECT uid2 
               FROM friend 
               WHERE uid1 = me()) AND 
                is_app_user=1)))) 
を動作するようです