Facebook - fqlを実行するための最良の方法は、イベントとevent_memberに参加しますか?
-
20-08-2019 - |
質問
Facebookアプリでは、各イベントの日付範囲と彼のRSVPステータスのユーザーのイベントを取得する必要があります。
ユーザーのイベントをうまく入手できますが、現時点では各イベントのRSVPステータスを一度に1つずつ調べており、アプリは多数のイベントを持つ人々のタイミングを出しています。
私はこのようにユーザーのイベントを取得しています:
$fql = "SELECT eid, name, start_time, end_time
FROM event
WHERE eid IN (SELECT eid
FROM event_member
WHERE uid = $user)
AND start_time > '$timestamp'
ORDER BY start_time";
この部分は正常に動作しています。
そして、これが私が各イベントのRSVPステータスを一度に1つずつ取得する方法です:
$fql = "SELECT rsvp_status
FROM event_member
WHERE uid = $user
AND eid = '$event_id'";
これはイベントごとに正常に動作しますが、各イベントが毎回検索する必要があるため、ユーザーが多くのイベントを持っているときにアプリページが出ます。
通常のSQLを使用すると、Joinで簡単にこれを行うことができますが、FQLでは参加は許可されていません。
考えられる解決策の1つは、このような各rsvp_statusの可能性をループすることにより、それらをバッチで行うことです。
$fql = "SELECT eid, name, start_time, end_time
FROM event
WHERE eid IN (SELECT eid
FROM event_member
WHERE uid = $user
and rsvp_status = 'attending')
AND start_time > '$timestamp'
ORDER BY start_time";
これにより、FQLコールの数がRSVP_Possibilityの数(3つ)まで減少しますが、理想的には、1つのFQLコールでそれを行いたいと思います。
解決
参加する方法はありませんが、使用できます fql.multiquery 4つのクエリを1回の呼び出しにバッチします。 4つのクエリはそれぞれ1つになります 4つの可能なイベント応答: :出席、不確か、拒否、およびnot_replied。
所属していません StackOverflow