Я использую fql.multiquery от Facebook для множества разных вещей и получаю результаты обратно - так, как приказал доктор. Но я не могу понять, как объединить результаты, чтобы я мог вернуть их пользователю так, как я хочу.
Я использую HTTParty для вызова этого:
checkin_query = {
"user_checkins" => "SELECT timestamp, coords, tagged_uids, page_id, post_id, checkin_id, message FROM checkin WHERE author_uid= me()",
"location_names" => "SELECT name FROM page WHERE page_id IN (SELECT page_id FROM #user_checkins)",
"friends_with" => "SELECT uid, name, pic_square FROM user WHERE uid IN (select tagged_uids FROM #user_checkins)"
}
params = {:queries => checkin_query.to_json, :access_token => user.token, :format => :json}
@checkin_info = HTTParty.get "https://api.facebook.com/method/fql.multiquery", :query => params
Что дает мне то, что я хочу ... но это в 3-х отдельных массивах / хэшах (?), И по какой-то причине мой мозг не приходит к выводу о том, как с этим бороться.
В общем, если бы я хотел показать пользователю "ОК, чувак, вы были на * LOCATION_NAME * с этими людьми: * FRIENDS_WITH *
Как я могу взять эти 3 отдельных набора результатов и сопоставить все? Есть ли способ включить что-то из предыдущего запроса, чтобы перезвонить и сопоставить его, чтобы я мог отобразить все? В некоторых регистрациях нет tagged_uids, поэтому, очевидно, простое выполнение по порядку не сработает, когда дело доходит до друзей, с которыми они находятся.
Поиски в Google показали мне, что SQL JOIN (кажется, это может быть решением) - но не доступен в FQL.