【问题标题】:Instagram realtime API does not return content IDs?Instagram 实时 API 不返回内容 ID?
【发布时间】: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


【解决方案1】:

我对地理搜索所做的是,每次我获得更新包时,我都会查询最近的地理端点。这工作得很好。我猜这也是标签订阅的想法,您是否尝试过查询最近的 instagrams 标签端点?

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

【讨论】:

  • media/recent 是我已经在查询的端点。附加标签的旧图像不会移动到“最近列表”的开头,因此您必须重新扫描所有页面,才能找到新图像。
【解决方案2】:

使用min_tag_id 参数对标签的最近媒体进行分页,以根据标签的时间而不是照片的拍摄时间对结果进行排序。我们将它与silarapp.com 的实时 api 结合使用,效果很好。

来自Instagram Api Documenation(我的重点):

获取最近标记的媒体列表。请注意,此媒体是按使用此标签标记媒体的时间排序的,而不是按照发布的顺序。 在分页响应中使用 max_tag_id 和 min_tag_id 参数对这些对象进行分页。可以返回图像和视频的混合类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2015-08-09
    相关资源
    最近更新 更多