API Facebook получать события, созданные друзьями - PullRequest
3 голосов
/ 14 сентября 2010

Я занимаюсь разработкой приложения для Facebook, которое должно извлекать события, созданные некоторыми из моих друзей. Стандартный SQL-запрос будет выглядеть так:

NSString *fql1 = @"SELECT "
 @"eid, name, tagline, id, pic_small,host, description, start_time, creator "
 @"FROM "
 @"event "
 @"WHERE "
 @"creator = 1111111111 OR creator = 2222222222 OR creator = 333333333";

Facebook позволяет фильтровать таблицы только по индексированным полям (что приведено в этой таблице). Я полагаю, я мог бы построить несколько запросов. Кто-нибудь может помочь с этим? Я потратил некоторое время на поиски, не глядя. Мне нужен только один запрос, поэтому изучение всего fbl для меня сейчас не имеет смысла.

Кстати: есть функция events.get - вы можете фильтровать по uid (документация гласит):

параметр: uid - Фильтрует по событиям, связанным с пользователь с этим идентификатором.

ОБЪЕДИНЕНО В каком смысле ? Уидс тех создателей? Приглашенный, посещающий или возможно? Почему документация на фейсбуке так расстраивает? Когда я пытаюсь использовать events.get с параметром uid, он возвращает результат с идентификаторами создателей, отличными от параметра uid. Функция API Graph: uid/events возвращает события, на которые пользователь был приглашен, посещен или имеет другой статус, но НЕ обязательно созданный им.

Что мне здесь не хватает? Я предоставил необходимые разрешения своему приложению, оно подключается, получает списки событий друга, но не те события, которые я хочу.

Кажется, все так просто, но я не могу найти прямого решения.

Буду признателен за любую помощь.

1 Ответ

3 голосов
/ 15 сентября 2010

Вы можете сделать что-то вроде этого:

SELECT 
    eid, name, tagline, pic_small,host, description, start_time, creator 
FROM 
    event 
WHERE 
    eid IN (
        SELECT 
            eid 
        FROM 
            event_member 
        WHERE 
            uid=111 OR uid=222) AND 
    (creator=111 OR creator=222)

По сути, это говорит о том, что получите события, в которые пользователь 111 или 222 участвует, и только те, которые они создали.Поскольку eid является индексируемым полем, FQL с этим согласен и с радостью выполнит дополнительное (creator = 111) усечение для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...