当前情况
我已经构建了一个从特定主题标签中收集Instagram图像的应用程序。 我使用分页来获取所有图像,并将数据(而不是图像)本地存储在数据库中。应用程序的第一次调用收获所有图像。后续调用仅收集比本地数据库中的最新映像更新的调用。否则,我需要成千上万的请求来浏览热门标签上的所有图像。这需要每隔几分钟完成一次,如果图像在应用程序中没有太多延迟的情况下出现。 出现的问题是,当用户将标签放在旧图像上时,我的应用程序不会提取这些图像 - 因为只有fetch-new-images性能结构。
尝试解决方案
我查看了实时API,但在我看来,它的构建方式使得它不合适。这是它在标签的实时更新中发送的内容:
{
"subscription_id": "2",
"object": "tag",
"object_id": "nofilter",
"changed_aspect": "media",
"time": 1297286541
}
我原本以为会有一个媒体ID列表,代表新的/已更改的内容,我可以从中获取实际内容 - 但事实并非如此。 我目前的解决方案是每隔几分钟获取一次新内容,然后每小时进行一次完整的重新扫描。从用户和性能角度来看,这都是次优的。
问题
真的不可能以更优雅的方式做事吗?我很欣赏Instagram不会在实时更新中发送完整内容,但发送ID不应该是有效负载大小的问题。看起来API在这方面是相当无用的 - 我能想到的唯一用例,它可以用于任何用途,用于“你的主题标签上有新的内容”。
最佳, 托本
答案 0 :(得分:0)
我对地理搜索的处理是,每当我获得更新包时,我都会查询最近的地理位置。这非常有效。我猜这是标签订阅的想法,您是否尝试过查询最近的instagrams标签端点?
/tags/[tag-name]/media/recent
答案 1 :(得分:0)
使用min_tag_id
参数为最近的媒体分页以根据标记的时间对结果进行排序,而不是在拍摄照片时对结果进行排序。我们将它与silarapp.com的实时api结合使用,效果很好。
从Instagram Api Documenation(我的重点):
获取最近标记的媒体列表。请注意,此媒体在使用此标记标记时排序媒体,而不是按照发布的顺序排序。 通过这些对象使用分页响应中的max_tag_id和min_tag_id参数进行分页。可以返回图像和视频类型的混合。