【发布时间】:2014-01-09 22:33:48
【问题描述】:
当前情景
我已经构建了一个从特定主题标签中收集 Instagram 图像的应用程序。 我使用分页来获取所有图像,并将数据(不是图像)本地存储在数据库中。应用程序的第一次调用会收集所有图像。随后的调用仅收集那些比本地数据库中的最新图像更新的图像。否则,我需要发出数千个请求来浏览流行标签上的所有图像。如果图像出现在应用程序中没有太多延迟,则需要每隔几分钟完成一次。 出现的问题是,当用户在旧图像上添加标签时,我的应用程序不会获取这些图像 - 因为 only-fetch-new-images 性能构造。
尝试解决方案
我查看了实时 API,但在我看来,它的构造方式使其无法使用。这是它为标签发送的实时更新:
{
"subscription_id": "2",
"object": "tag",
"object_id": "nofilter",
"changed_aspect": "media",
"time": 1297286541
}
我原以为会有一个媒体 ID 列表,代表新的/更改的内容,我可以从中获取实际内容 - 但没有。 我目前的解决方案是每隔几分钟获取一次新内容,然后每小时进行一次全面重新扫描。从用户和性能的角度来看,这都不是最理想的。
问题
真的不能用更优雅的方式来做吗?我很欣赏 Instagram 不会在实时更新中发送完整的内容,但发送 ID 在有效负载大小方面应该不是问题。在这方面,API 似乎毫无用处 - 我能想到的唯一用例是“你的标签手表上有新内容”通知。
最好, 托本
【问题讨论】:
-
你是怎么解决的?我有完全相同的问题(获取新标记的内容)。我真的无法理解这种实时 API 设计背后的原理,它几乎没用。
-
我还没有解决。我目前的解决方案是每 1 分钟左右进行一次“新内容搜索”(只有几个请求)。然后,我每 30 分钟对标签进行一次二次全面扫描,这会添加自上次扫描以来已标记的图像,并删除提要中不再存在的图像(否则您的提要中会出现死图像)。这意味着在获取一些新图像和删除死图像时会有一些延迟,而且相当繁重。您多久执行一次完全重新扫描取决于图像的数量。
-
我目前只有几千张图片。但是假设我们有 50000 张图片,页面大小约为 15 张图片,即每次重新扫描 3000 多个请求...... Instagram 请求没有官方限制(“合理”除外),但我想你可以很快被列入灰名单。我在请求之间实施了短暂的延迟,以避免地毯轰炸他们的服务器。
-
感谢您的帮助。我想我会做类似的事情,尽管我不需要担心死图像。希望 Instagram 的人们同时改进他们的 API
-
我也遇到了同样的问题。我已经用 instagram 记录了一个错误,但还没有收到任何回复。你有没有让实时 api 以一种有用的方式工作?
标签: instagram