Я пытаюсь добиться следующего с помощью Facebook Multiquery FQL, получить список всех событий на фан-страницах, в которых я участвую.
У меня есть приведенная ниже логика, и я попытался реализовать нечто похожее с оператором FQL ниже.
- получить список всех событий, созданных фан-страницей (с указанным идентификатором),
- получить список всех моих (пользователей) событий, посещающих
- Соответствие eid из таблицы FQL для event_member
- Если они соответствуют идентификаторам, а rsvp_status равен посещению
- результат отображения.
FQL Multi
{"query1": "ВЫБЕРИТЕ eid ОТ события WHERE
eid IN (ВЫБЕРИТЕ eid FROM event_member
ГДЕ UID
= $ fanpageID) "," query2 ":" ВЫБЕРИТЕ rsvp_status ИЗ МЕРОПРИЯТИЯ WHERE
uid = $ uid и EID IN
(ВЫБЕРИТЕ eid FROM # query1) "}
Я знаю, что утверждение неверно, но я изо всех сил пытаюсь это сделать. Я достиг этого с помощью Graph API, используя очень грязный набор циклов foreach в моем PHP-коде.
Было бы гораздо эффективнее использовать один FQL-оператор с несколькими запросами.
Любые предложения будут великолепны.
EDIT
Проблема, с которой я столкнулся сейчас, заключается в том, что оператор FQL ifaour работает в консоли FQL Query (возвращает результаты), однако при выполнении следующего запроса возвращается пустой массив.
Когда я разбираю оператор просто (ВЫБЕРИТЕ eid ОТ события WHERE creator = $ fanPageID), консоль FQL подсвечивает, что eid не индексируется.
Вот мой PHP
функция usersEventsPoints ($ uid,
$ facebook, $ fanpageID) {
$events = "SELECT eid FROM event WHERE creator=$fanpageID AND eid
IN (ВЫБЕРИТЕ ИД ИЗ Event_member WHERE
uid = $ uid AND rsvp_status =
\ "Участие \") ";
$eventsAttendance = $facebook->api(array(
'method' => 'fql.query',
'query' =>$events, ));
$eventsAttendingcount = 0;
Еогеасп
($ eventsAttendance as $ eventsAttendanceFetch) {
if($eventsAttendanceFetch['eid'] == true){
$eventsAttendingcount++;
}
}
return $eventsAttendingcount;
}
Blockquote
Есть идеи?