2016-09-21 3 views
1

Я пытаюсь получить все последние носители по тегам, используя this Конечная точка Instagram. Цель здесь - отслеживать все последние медиа для тегов. Я настроил запланированную задачу (с Java и Spring) (для выполнения каждого часа), которая отправляет запросы и получает данные. Ниже приводится последовательность выполнения:Паттерн страницы Instagram: Следующая страница

  • Отправить запрос GET в Instagram и ранее сохраненные max_tag_id (отправить с нулем, если нет предыдущего ID)
  • перебирать результаты, извлечение next_max_tag_id из постраничного элемента и сохранить его в базе данных против соответствующего тега
  • запрос
  • Отправить GET снова с новым max_tag_id и продолжить
  • Стоп, если next_url в результате является нулевым или количество носителей возвращается менее 20 (настраиваемая)

После завершения выполнения следующего выполнения (после часа) начнется с ранее сохраненного файла max_tag_id.

Проблема, которую я вижу, я никогда не получаю «последние» документы в последующих исполнениях. Согласно документации, прохождение max_tag_id в запросе должно вернуть все носители после этого идентификатора, однако этого не происходит. Я продолжаю получать старые СМИ.

Если я хочу получать последние документы в каждом исполнении, мне нужно передать nullmax_id в первый запрос каждого исполнения? Если я это сделаю, я не получу избыточные документы в каждом исполнении? Я пробовал просить Instagram, но не получил никакого ответа. Кроме того, их документация мало объясняет о разбиении на страницы. Не уверен, работает ли фрагментация для последней конечной точки мультимедиа.

ответ

1

Если вы хотите, чтобы последние не использовали max_tag_id, если вы используете max_tag_id, он вернет все носители, представленные до этого.

Вы должны получить min_tag_id и хранить его в течение следующего часа начала, сделав звонок только с min_tag_id, если есть pagination.next_url, использовать, чтобы получить следующий набор из 20, пока pagination.next_url не существует .... использование сохраненный min_tag_id для совершения звонков в следующий час.

Самый первый раз, когда вы вызова без max_tag_id или min_tag_id

Вы также можете установить &count=32, чтобы получить 32 сообщения при каждом вызове API, (32 максимум из моего опыта)

+0

Спасибо за блестящий ответ Кришрак, ты спасатель жизни :) –

Смежные вопросы