首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Instagram API:如何获取所有用户媒体?

Instagram API:如何获取所有用户媒体?
EN

Stack Overflow用户
提问于 2012-06-04 20:43:23
回答 10查看 136.5K关注 0票数 67

一般来说,我需要获取所有的用户媒体。

用户有超过250张照片。

我做/users/1/media/recent/?access_token=...&count=250

但它只返回20张照片。

也许instagram在获取媒体方面是有限制的。如果是,那么response会使用分页来解决这个问题。但是只有最大的身份证照片。那么如何知道第一张(最小)身份证照片来分页呢?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-12-06 00:42:06

你说得对,Instagram API每次调用只会返回20张图片。因此,您必须使用分页功能。

如果您正在尝试使用API控制台。您需要首先允许API控制台通过您的Instagram登录进行身份验证。为此,您需要在Authentication下拉列表中选择OAUTH2。

通过身份验证后,使用左侧菜单选择users/{user-id}/media/recent端点。因此,对于{user-id}这篇文章,您可以将其替换为self。然后,这将使用您的帐户检索信息。

至少,这是为该端点执行GET所需的。一旦你发送,你会得到一些json返回给你。在所有服务器信息之后,在返回信息的最顶部,您将看到包含next_url和next_max_id的分页部分。

next_max_id将用作查询的参数。请记住,max_id是最初返回的20个图像中最旧的一个图像的id。这将用于返回早于此图像的图像。

如果您不想使用max_id,则不必使用它。实际上,您只需获取要开始查询更多图像的图像的id即可。

因此,从返回的数据中,将max_id复制到参数max_id中。请求URL应该类似于下面的https://api.instagram.com/v1/users/self/media/recent?max_id=XXXXXXXXXXX,其中XXXXXXXXXXX是max_id。再次点击发送,你应该会得到接下来的20张照片。

从那里,您还将收到更新后的max_id。然后,您可以再次使用它来获取下一组20张照片,直到最终遍历用户的所有照片。

在我正在工作的项目中,我所做的是加载从最初的最近媒体请求返回的前20张照片。然后,为图像分配一个data-id (-id实际上可以是您想要的任何值)。然后在照片集的底部添加了一个load more按钮。

单击按钮时,我使用jQuery获取最后一个图像及其data-id属性,并使用该属性通过ajax创建一个get调用,并将结果附加到页面上已有照片的末尾。代替一个按钮,你可以简单地替换它,以获得无限的滚动效果。

希望这能有所帮助。

票数 56
EN

Stack Overflow用户

发布于 2013-01-29 23:20:20

我已经通过将可选参数count设置为-1解决了这个问题。

票数 19
EN

Stack Overflow用户

发布于 2012-06-05 14:38:18

这是Instagram Developer Console中的一个问题。max_idmin_id在那里不能工作。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10881511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档