Как реализовать загрузку фото из инстаграму по хэшам?

Вопрос такой, сделать обычную загрузку через апишку с инстаграму - не проблема.

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

Прошу подсказать или выразить свои мысли, как это реализовать.
По возможности чуть поподробнее)
  • Вопрос задан
  • 2510 просмотров
Пригласить эксперта
Ответы на вопрос 2
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
  1. У API инстаграма есть методы работы с тегами, например можно получить список последних загруженных в инстаграм фото и видео с тэгом "snow": https://api.instagram.com/v1/tags/snow/media/recen...
  2. После этого вытаскиваете из JSON-ответа id у которых created_time больше чем при последнем вызове скрипта.
  3. Загружаете эти id туда, куда вам надо.
  4. Сохраняете время вызова скрипта.
  5. Пихаете скрипт в cron
Ответ написан
Комментировать
Тут важно знать, это новый, уникальный тэг, нужна ли полная история фоток по этому тэгу и тд.

1. Получаем список последних фоток с нужным тэгом и сохраняем их в базу:
https://api.instagram.com/v1/tags/TAG_NAME/media/recent?access_token=TOKEN

2. Из ответа берем pagination.next_min_id и сохраняем его для следующего запроса.
2.a Если нужна история по этому тэгу, то делаем следующий запрос по ссылке из pagination.next_url или генерируем его сами с указанием next_min_id из pagination объекта и так пока этот параметр (next_url) будет в ответе или просто до момента пока вам не надоест.
3. Запрашиваем новые фотки с указанием параметра next_min_id и сохраняем их в базу:
https://api.instagram.com/v1/tags/TAG_NAME/media/recent?min_tag_id=NEXT_MIN_ID&access_token=TOKEN

4. GOTO 3.

Тут есть проблема, которую мне еще не удалось решить. Этот алгоритм работает пока у вас не очень много фоток появляется с этим тэгом и они все укладываются в один ответ на запрос к API. (параметр count может быть от 1 до 32). Как только кол-во новых фоток за то время пока вы делаете запрос к API и показываете/сохраняете фотки в базу превысит count — нужно будет выкачивать новые страницы по next_url и с каждой итерацией таких траниц будет все больше и больше (попробуйте тэг love например).

Поведение метода tag c параметром next_min_id мне совсем не понятно, тк указывая этот параметр и count=1 я ожидаю увидеть ровно одну фотку опубликованую в Instagram сразу после той, у которой этот next_min_id и был, но по факту в ответе будет самая свежая фотка из всех что появились за период после next_min_id и ссылка на следующую порцию фоток из этой группы в next_url. Как это решить - я не знаю, вот мой вопрос на SO.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы