Поиск событий в Facebook и нумерация страниц (Graph API) - PullRequest
8 голосов
/ 08 ноября 2010

Я запрашиваю эту страницу, чтобы получить события с ключевым словом

"conference":https://graph.facebook.com/search?q=conference&type=event

Это отлично работает.

Проблема в том, что вернулась нумерация страниц:

"paging": {
    "previous":"https://graph.facebook.com/search?q=conference&type=event&limit=25&since=2010-12-18T17%3A00%3A00%2B0000",
    "next":"https://graph.facebook.com/search?q=conference&type=event&limit=25&until=2010-11-04T16%3A29%3A59%2B0000"
 }

Кажется, что есть больше событий с "конференц-связью", но запрос этих двух пагинаций URL-адресов не возвращает данных.

Это странно, поскольку оно одинаково для любого запрашиваемого ключевого слова, а URL-адреса нумерации страниц, возвращаемые API Facebook, по-видимому, всегда возвращают пустые данные.

Кто-нибудь знает в чем проблема?

Спасибо

Ответы [ 3 ]

6 голосов
/ 20 января 2011

Я столкнулся с подобной путаницей с запросом к местам.«Следующий» URL вел себя именно так, как вы его описали.

Я мог запросить информацию о местоположении, используя URL-адрес, подобный следующему:

https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660,-4.2715&distance=150&limit=10

И вернул JSON с первыми 10 местами плюс следующиефрагмент, который предполагает существование параметров подкачки:

"paging": {
      "next": "https://graph.facebook.com/search?access_token=INSERT_TOKEN&type=place&center=55.8660\u00252C-4.2715&distance=150&limit=10&offset=10"

Нажатие на этот URL не работает.Но я выяснил комбинацию параметров limit и offset, которые дали мне эффективную подкачку.

limit=10 & offset not defined => first 10 results
limit=20 & offset=10 => next 10 results
limit=30 & offset=20 => next 10 results
limit=40 & offset=30 => last 8 results (can stop here because less than 10 back)
limit=50 & offset=40 => confirmation that there are no more results

Я понимаю, что у меня есть «limit» и «offset», а не «limit» и «до"параметры, которые вы получаете, но, надеюсь, вы могли бы применить ту же технику, то есть продолжать увеличивать лимит и включать дату / время до вашего последнего результата?

1 голос
/ 26 ноября 2010

Я думаю, что это стандартная практика в Facebook Graph API. Я думаю, что если ваш запрос привел к непустому JSON, они всегда дадут вам следующую страницу, даже если она может быть пустой.

Однако я не уверен на 100%, потому что API Graph Facebook, похоже, не очень хорошо документирован ... (например, они сказали, что мы можем изменить эту нумерацию страниц, но не объяснили, как это сделать).

0 голосов
/ 24 января 2011

Кажется, Facebook недавно изменил его.Вот исправление:

Для даты и времени, возвращенной в следующем и предыдущем как «2011-01-18T08 \ u00253A42 \ u00253A35 \ u00252B0000», замените все вхождения «\ u0025» на «%», и оно должно работать нормально.

Если вы заметили формат даты и времени на Facebook, это 2011-01-18T08: 42: 35 + 0000 (дата принята функцией strtotime C)

...