この FQL マルチクエリを使用して、友達が好きなページを取得しようとしています。
{
"query1": "SELECT uid2 FROM friend WHERE uid1 = me()",
"query2": "SELECT uid, page_id, type FROM page_fan WHERE uid IN (SELECT uid2 FROM #query1)",
"query3": "SELECT page_id, name, categories, type, page_url, pic_big FROM page WHERE page_id IN (SELECT page_id FROM #query2)"
}
クエリは正常に機能し、結果が返されます。ただし、260 人のユーザーに対して約 2940 ページが返されます。これは、クエリされたユーザーの実際のいいね数の合計よりもはるかに少ない値です。
私はそれがパーミッションの問題である可能性があると考え、このリストに載っている人のうちの 1 人に、友人のアプリケーションの「いいねや興味へのアクセス...」パーミッションを削除するよう依頼しました。次の実行では、返された JSON に彼女のページといいね! は含まれていませんでしたが、ページ数は実際には 10 ~ 20 レコード増加しました。
ここで何か間違ったことをしていますか?パフォーマンス上の理由からマルチクエリを使用しています。
これは、Graph API エクスプローラーと PHP SDK の両方を使用して発生します。
$fql = urlencode($fqlQuery);
$response = $facebook->api("/fql?q={$fql}");
この問題について何か考えはありますか?
前もって感謝します :)