2012-04-04 9 views
1

どのように私は友人のリストとその友人のための好きなリストの上にiteartingせずに、特定のページを好きなすべての私の友人を得ることができますか?どのように与えページを好きなユーザーからすべての友人を取得するには?

dumbwayは次のようになります:

friends_like_page = [] 
for f in friends: 
    for l in friends.like: 
     if l = page_id: 
     friends_like_page.append(f) 

しかし、このためのFQLクエリを構築する方法があります場合、私は思ったんだけど。

アドバンス#2解か:

@Igyでアドバイスを使うには、私はそれを解決することができます。私はそこに答えを掲載しました。とにかく、私はIgyの答えを受け入れています。それは私を助けた彼の考えだったからです。

アドバンス#1:

[OK]を、私は今、この権利を持っている:

は、すべての友達を取得:

SELECT uid2 FROM friend WHERE uid1 = me() 

は、ユーザーUIDからページのファンを取得

SELECT uid, page_id FROM page_fan where uid = UID 

コンバインド

SELECT uid, page_id FROM page_fan WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me()) 

しかし、正常に動作していないようです。どうしたの?

答えて

3

あなたはページを好きな人のリストを手に入れることはできません。常にユーザーから始めてページに戻ってくる必要があります。これを行う最も簡単な方法は、おそらくユーザーの友人のバッチクエリを実行し、いくつかの配列検索演算子と結果を​​比較します

+0

+1ありがとうIgy、私はバッチクエリでそれをslvedしました。 – santiagobasulto

3

したがって、私は最終的にそれを解決した。 @Igyが述べたように、私はバッチリクエストを作成しました。ここにあります:

curl https://graph.facebook.com \ 
    -F 'access_token=...' \ 
    -F 'batch=[ 
      {"method": "GET", 
       "name" : "get-friends", 
       "relative_url": "me/friends", 
       }, 
       {"method": "GET", 
       "relative_url": "likes/?ids={result=get-friends:$.data.*.id}" 
       } 
    ]' 
関連する問題