Я пытаюсь получить широту / долготу всех друзей пользователя, используя один вызов API.Я считаю, что мне нужно написать FQL-оператор для нескольких запросов, но я не могу получить правильный синтаксис.
Я считаю, что два запроса должны быть примерно такими:
'"friends":"SELECT uid,current_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"'
'"location":"SELECT location FROM page WHERE id IN (SELECT current_location_id FROM #friends)"';
Моя проблема в том, что каким-то образом мне нужно получить идентификатор current_location в первом запросе, чтобы я мог ссылаться на него во втором запросе, но я знаю только, как получить массив, содержащий идентификатор.
Спасибо за любую помощь!
Уточнение:
Я не пытаюсь пройти регистрацию друзей.Вместо этого я хочу отобразить «current_location» (т.е. где они живут) всех друзей пользователя на географической карте.Я могу получить "current_location" пользователя с помощью следующего FQL-запроса:
"SELECT uid,sex,current_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"
Этот запрос возвращает следующий массив:
[current_location] => Array
(
[city] => New York
[state] => New York
[country] => United States
[zip] =>
[id] => 108424279189115
[name] => New York, New York
)
, который не содержит долготы и широтыcurrent_location (Нью-Йорк в приведенном выше примере)
Поэтому теперь мне нужно взять идентификатор current_location (например, 108424279189115) и выполнить второй запрос FQL, например:
"SELECT location,name FROM page WHERE page_id = 108424279189115)"
Toполучить широту и долготу current_location.В настоящее время у меня есть рабочий код, который запускает первый запрос FQL, затем извлекает page_id из php, а затем запускает второй запрос FQL, чтобы получить текущую / широту / долготу.Однако из соображений производительности я хотел бы выполнить только один мультизапрос, если это возможно.