API событий Facebook

У меня есть страница на facebook, и я создал несколько событий на ней.

Я также использую эти события в своем мобильном приложении.

Но теперь API-интерфейс графика показывает события, к которым я уже присоединился.

Если вы перейдете в Graph API Explorer, вы увидите, что он показывает 4 события.

Но последние 2 события снизу – прошедшие события.

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

Что делать, чтобы API-интерфейс графа не показывал эти 2 события?

Я не хочу удалять их из facebook, но просто хочу скрыть это.

Пожалуйста посоветуй.

Solutions Collecting From Web of "API событий Facebook"

Вы можете ограничить данные, возвращаемые facebook, чтобы отображать только события, созданные после определенной даты, используя параметр query from, который принимает временную метку unix.

Поэтому, если вам нужны события, которые создаются после 8 октября 2012 года или любой другой даты, вы можете позвонить с параметром query 1349654400 . В этом случае отметка времени unix от 08 Oct 2012 00:00:00 GMT будет 1349654400 .

Теперь, если мы сделаем вызов с параметром query и предыдущей отметкой unix, он вернет все события, созданные после 8 октября 2012 года .

Вот рабочий вызов, сделанный в Graph API Explorer с параметром query from.

Если вышеуказанная ссылка не работает:

https://developers.facebook.com/tools/explorer?method=GET&path=jarnvags%2Fevents%3Fsince%3D1349654400

Путь : jarnvags ​​/ events? Since = 1349654400

Дайте мне знать, если это вам помогло 🙂

EDIT: вот как это сделать с FQL :

 SELECT eid, name, description, pic_big, start_time, end_time, location FROM event WHERE creator = 109341359096369 AND eid IN (SELECT eid FROM event_member WHERE uid = 109341359096369) AND start_time >= now() ORDER BY start_time 

И вот как вы должны это делать в PHP:

 $pageID = '109341359096369'; $fql = 'SELECT eid, name, description, pic_big, start_time, end_time, location FROM event WHERE creator = ' . $pageID . ' AND eid IN (SELECT eid FROM event_member WHERE uid = ' . $pageID . ') AND start_time >= now() ORDER BY start_time'; $ret_obj = $facebook->api(array( 'method' => 'fql.query', 'query' => $fql, )); print_r($ret_obj); 

Проверить таблицу event FQL docs по адресу: https://developers.facebook.com/docs/reference/fql/event/

РЕДАКТИРОВАТЬ 2: просто хотел подчеркнуть точку, сделанную cpilko ниже в комментариях, поэтому люди, которые видят этот ответ в будущем, могут легко заметить это, вам больше не нужно преобразовывать дату в метку времени, она работает только с датой ( 2012-10-08 ).

И вот Events Timezone Migration Note пояса событий, указанное в документах facebook doc:

События.

Начиная с миграции «Временная зона событий», все события всегда являются форматированными строками ISO-8601; модификатор строки запроса date_format больше не имеет никакого эффекта. В настоящее время возвращаются следующие форматы в зависимости от типа события:

Только по дате (например, '2012-07-04'): события, у которых есть дата, но пока нет конкретного времени. Точное время (например, '2012-07-04T19: 00: 00-0700'): события, которые начинаются в определенный момент времени, в определенном смещении от UTC. Это то, как новые события в Facebook отслеживают время и позволяют пользователям просматривать события в разных часовых поясах. Локальное время (устаревшее, например, '2012-07-04T19: 00: 00'): устаревшие события, которые не имеют информации о часовом поясе. Этот формат устарел, но по-прежнему возвращается из-за устаревших событий, которые все еще находятся в системе.