Я пытаюсь получить широту / долготу всех друзей пользователя с помощью одного вызова 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
)
Который не содержит долготу и широту текущего_location (Нью-Йорк в приведенном выше примере)
Поэтому теперь мне нужно взять идентификатор current_location (например, 108424279189115) и запустить второй запрос FQL, например:
"SELECT location,name FROM page WHERE page_id = 108424279189115)"
Чтобы получить широту и долготу current_location. В настоящее время у меня есть рабочий код, который выполняет первый запрос FQL, затем извлекает page_id в php, а затем выполняет второй запрос FQL, чтобы получить широту / долготу current_location.Однако из соображений производительности я хотел бы запустить только один мультизапрос, если это возможно.