2013-09-03 3 views
4

Текущий сценарийAPI-интерфейс Instagram реального времени не возвращает идентификаторы содержимого?

У меня есть создать приложение, которое заготавливать Instagram изображения с определенной хэштегом. Я использую разбиение на страницы для получения всех изображений и сохранения данных (а не изображений) локально в базе данных. Первый вызов приложения убирает все изображения. Последующие вызовы собирают только те, которые были более новыми, чем самое новое изображение в локальной базе данных. В противном случае мне нужно будет сделать тысячи запросов на страницу через все изображения в популярных тегах. И это нужно делать каждые несколько минут, если изображения, которые появляются без слишком большой задержки в приложении. Возникает проблема в том, что когда пользователи ставят теги на старые изображения, эти изображения затем не извлекаются моим приложением - из-за конструкции производительности только-выборки-новых изображений.

Попытка решения

Я посмотрел на API в режиме реального времени, но мне кажется, она построена таким образом, что делает его unsuable. Это то, что он посылает в обновлении в режиме реального времени для тега:

{ 
    "subscription_id": "2", 
    "object": "tag", 
    "object_id": "nofilter", 
    "changed_aspect": "media", 
    "time": 1297286541 
} 

я бы подумал, что будет список идентификаторов СМИ, представляя новое/измененное содержание, из которого я мог бы принести реальное содержание - но нет. Мое текущее решение состоит в том, чтобы получать новый контент каждые несколько минут, а затем делать полные rescans каждый час. Это субоптимально как от пользователя, так и от перспективы производительности.

Вопрос

ли это на самом деле не представляется возможным сделать более изящным способом? Я понимаю, что Instagram не отправляет полный контент в обновление в реальном времени, но отправка идентификаторов не должна быть проблемой с точки зрения размера полезной нагрузки. Похоже, что API в этом отношении бесполезен - единственный случай использования, о котором я могу думать, где он будет полезен, - это «Есть новый контент для вас, хехтаг смотреть».

Бест, Торбена

+0

Как вы его решили? У меня точно такая же проблема (получить недавно помеченный контент).Я действительно не могу понять обоснования такого дизайна API реального времени, это почти бесполезно. – galymzhan

+0

Я не разрешил это. Мое текущее решение - делать «новый поиск контента» каждые 1 минуту или около того (всего несколько запросов). Затем я выполняю вторичное полное сканирование тега каждые 30 минут, которое добавляет изображения, которые были помечены с момента последнего сканирования, и удаляет изображения, которые больше не присутствуют в фиде (в противном случае вы получаете мертвые изображения в фиде). Это означает, что есть некоторые задержки в получении некоторых новых изображений и избавление от мертвых изображений, и это довольно тяжело. Как часто вы будете делать эти полные rescans, зависит от количества изображений. –

+0

У меня в настоящее время только несколько тысяч изображений. Но предположим, что у нас есть 50000 изображений с приблизительным размером страницы из 15 изображений с 3000 + запросами на повторное сканирование ... Официальных ограничений для запроса Instagram нет (кроме «разумных»), но я думаю, вы могли бы довольно быстро получить greylisted. Я выполнил небольшую задержку между запросами, чтобы избежать ковровых бомбардировок их серверов. –

ответ

0

Что делать с поиском географии является то, что каждый раз, когда я получаю пакет обновления я запрашиваю недавнюю географию конечной точки. Это работает очень хорошо. Im предположение, что идея с подпиской на тег также, вы пробовали запросить конечную точку тегов последних instagrams?

/tags/[tag-name]/media/recent 
+0

media/recent - это конечная точка, к которой я уже обращаюсь. Старые изображения, которые прикрепляют тег, не перемещаются в начало «последнего списка», поэтому вам нужно выполнить полное повторное сканирование всех страниц, чтобы найти новое изображение. –

0

разбиваться последние средства массовой информации для тега с параметром min_tag_id сортировать результат на основе того, когда он был помечен и не тогда, когда была сделана фотография. Мы используем это в сочетании с realtime api в silarapp.com, и он отлично работает.

Из Instagram Api Documenation (курсив мой):

Получить список недавно отмеченных средств массовой информации. Обратите внимание, что этот носитель упорядочен, когда носитель был помечен с этим тегом, а не с порядком его размещения. Используйте параметры max_tag_id и min_tag_id в ответе pagination для разбивки на страницы через эти объекты. Может возвращать смесь изображений и видео.

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