一般来说,我需要获取所有的用户媒体。
用户有超过250张照片。
我做/users/1/media/recent/?access_token=...&count=250
但它只返回20张照片。
也许instagram在获取媒体方面是有限制的。如果是,那么response会使用分页来解决这个问题。但是只有最大的身份证照片。那么如何知道第一张(最小)身份证照片来分页呢?
发布于 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调用,并将结果附加到页面上已有照片的末尾。代替一个按钮,你可以简单地替换它,以获得无限的滚动效果。
希望这能有所帮助。
发布于 2013-01-29 23:20:20
我已经通过将可选参数count设置为-1解决了这个问题。
发布于 2012-06-05 14:38:18
这是Instagram Developer Console中的一个问题。max_id
和min_id
在那里不能工作。
https://stackoverflow.com/questions/10881511
复制相似问题