[Примечание: первые два ответа, включая тот, который я написал, еще не касаются «необязательной» проблемы fql.multiquery.]
Когда я использую fql в Facebook, я могу получитьсписок школ, которые я посещал, или которые посещали друзья.В частности, я могу получить название школы, и это идентификатор Facebook.Однако я не знаю, как запросить более подробную информацию об этих школах.
В частности, я хотел бы выяснить, где были расположены школы.Но я не знаю, к какой сущности графа Facebook (или к чему-либо еще) относятся эти школьные идентификаторы.
Как узнать из Facebook, где расположены эти школы?
Необязательно:было бы еще лучше, если бы это можно было сделать в том же мультизапросе, который в первую очередь возвращал списки школ (это был бы запрос к пользовательской таблице для моего идентификатора и другой запрос к пользовательской таблице для некоторых идентификаторов моих друзей).
Вот расширенная версия необязательной части, упомянутой в предыдущем абзаце (обратите внимание, что я попытался добавить это как отдельный вопрос, но когда я вошел, чтобы сделать иллюстративные данные более актуальными, я увидел, что они молчаисчез. Поэтому я предполагаю, что я споткнулся о какой-то особенности переполнения стека, предназначенной для того, чтобы отсеять вопросы, которые слишком похожи друг на друга. Вместо этого, давайте просто скажем, что это разъяснение того, что я имел в виду в предыдущем абзаце)1011 *
При использовании javascript sdk в Facebook это происходит молча:
FB.login(function(response){
disp('loginResponse', response);
var userQuery= FB.Data.query(
'select uid,name,education from user where uid= {0}'
, response.session.uid);
var friendlist = FB.Data.query(
'select uid2 from friend where uid1 = {0} order by rand() limit 10'
, response.session.uid);
var friends = FB.Data.query(
'select uid,name,education from user where uid in (select uid2 from {0})'
, friendlist);
var friendSchools= FB.Data.query(
'select page_id,name,location from page where page_id in (select education.school.id from {0})'
, friends);
self.queries= [userQuery, friendlist, friends, friendSchools];
FB.Data.waitOn(queries
, function() {alert(1)});
})
Если я удаляю элемент friendSchools из массива запросов, он работает просто отлично, и друга можно представить таким объектом, как этот:
{
uid: '...',
name: '...',
education:
[
{
school:
{
id: '115920001751600',
name: 'Burlington High School'
},
year:
{
id: '138792749476094',
name: '1978'
},
type: 'High School'
},
{
school:
{
id: '20697868961',
name: 'Boston University'
},
degree:
{
id: '188387604516411',
name: 'BS'
},
year:
{
id: '103823546338323',
name: '1982'
},
type: 'College'
}
]
}
Итак, как мне реструктурировать предложение where взапрос FriendSchools, чтобы можно было выполнить этот запрос?
Другими словами, как я могу использовать fql.multiquery для поиска информации о школах (или других подобных объектах), возвращенных в другом месте в мультизапросе?