Instagram API请求更多

时间:2015-12-10 09:10:24

标签: pagination instagram

https://api.instagram.com/v1/users/self/media/recent/?access_token=my_token&count=30

仅请求20个数据。

我想要30个数据。

  {
    pagination: { },
    meta: {
    code: 200
    },
    data: [
    {
    attribution: null,
    tags: [...

在next_max_id中找不到分页。

但是https://api.instagram.com/v1/users/self/media/recent/?access_token=my_token&count=1

此代码= next_max_id确定。

你知道我的意思吗?

抱歉,不是英语wirte ..

帮助我〜

1 个答案:

答案 0 :(得分:3)

通常,端点限于每个请求一定数量的项目。为了解决这个问题,端点support pagination。分页由响应中的pagination键指示。它可能看起来像这样:

"pagination": {
    "next_url": "https://api.instagram.com/v1/tags/puppy/media/recent?access_token=fb2e77d.47a0479900504cb3ab4a1f626d174d2d&max_id=13872296",
    "next_max_id": "13872296"
}

在这种情况下,您可以将next_max_id传递给之前发出的请求,以获取从当前响应中未包含的最后一个ID开始的下一页。您也可以简单地请求next_url处的URL,该URL是由Instagram API自动构建的。

您可以通过提供count parameter来增加端点的页面大小。请注意,每个端点都有一个最大页面大小,您无法超越它。因此,您必须在某些时候支持分页才能访问更多项目。

最后,尽管您在响应中指定了 20项的数量,尽管指定的页面大小为30,但您很可能会被沙盒模式命中。

Sandbox mode是在2015年11月17日或之后创建的Instagram应用程序的新限制。此限制以各种方式限制应用程序,最明显的是,它限制所有端点返回最近20个最新媒体项

因此,如果您在该日期之后创建了应用程序,那么这正是您遇到的问题。您的应用程序基本上处于测试模式。为了解除这些限制,您需要先审核并批准您的申请。如documentation中所述:

  

在您的应用经过审核和批准后,您就可以向公众开放了。要将客户端从沙箱切换到实时模式,您可以使用应用程序配置屏幕顶部的按钮。当您上线时,任何Instagram用户都可以授权您的应用,但您只能访问在审核期间授予的权限。