Google Reader API не показывает все результаты - PullRequest
1 голос
/ 26 июля 2011

Я использую Google Reader API, чтобы получить все доступные элементы для любого RSS-канала.Я использую его следующим образом:

http://www.google.com/reader/atom/feed/[RSS FEED LINK]? N = [КОЛИЧЕСТВО ПУНКТОВ, КОТОРЫЕ ПОКАЗЫВАЕТСЯ] & r = o & ot = [UNIX TIME STAMP START DATE]]

Как я понимаю,это должно вернуть все элементы, начиная с даты, указанной отметкой времени (дата начала не должна быть старше, чем месяц назад).Он отлично работает для некоторых каналов, но в большинстве каналов не отображаются все доступные элементы (хотя они доступны при использовании Google Reader).

Например:

http://www.google.com/reader/atom/feed/http://www.360cities.net/rss/area/Greece.rss?n=1000&r=o&ot=1306959543

эта ссылка показывает только элементы, начиная с 24-07-2011 до текущей даты, хотя должна отображать элементы, начиная с 26-06-2011.Если эта же ссылка (http://www.360cities.net/rss/area/Greece.rss) прочитана Google Reader, она покажет гораздо больше результатов.

Есть какие-нибудь решения?

1 Ответ

4 голосов
/ 10 сентября 2011

К счастью, после многих исследований я нашел решение своей проблемы:

  • URL-адрес в этой форме возвращает самые последние N элементов RSS-канала

    http://www.google.com/reader/atom/feed/[RSS]?n=[N]

    [N] = Количество отображаемых элементов (макс .: 1000).

    [RSS] = URL для RSS-канала.

  • Чтобы получить следующие N более старых элементов, следует использовать другой параметр, называемый Строка продолжения . Его можно найти внутри тега gr: продолжение на каждой странице результатов. Итак, чтобы получить N более старых предметов, необходимо использовать URL в этой форме:

    http://www.google.com/reader/atom/feed/[RSS]?n=[N]&c=[C]

    [N] = Количество отображаемых элементов (макс .: 1000).

    [RSS] = URL для RSS-канала.

    [C] = Строка продолжения

Пример:

  • Допустим, нам интересно получить результаты от http://www.360cities.net/rss/area/north-america.rss

  • Чтобы получить 1000 новых предметов этого RSS-канала, URL-адрес должен выглядеть следующим образом:

    http://www.google.com/reader/atom/feed/http://www.360cities.net/rss/area/north-america.rss?n=1000

  • Чтобы получить следующие более старые 1000 предметов, мы должны сначала выполнить поиск на первой странице результатов и найти строку продолжения . В этом случае строка продолжения имеет значение COnu-r7znpsC (может отличаться при просмотре этого сообщения). Тогда используемый URL должен выглядеть так:

    http://www.google.com/reader/atom/feed/http://www.360cities.net/rss/area/north-america.rss?n=1000&c=COnu-r7znpsC

  • Чтобы получить следующие более старые 1000 предметов, повторите тот же процесс, найдя новую строку продолжения и т. Д. *

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

Надеюсь, это кому-нибудь поможет.

Спасибо

...