Instagram API:如何获取所有用户的图片?

时间:2014-12-05 13:04:43

标签: instagram instagram-api

我正在尝试使用Instagram API创建一个包含所有用户的Instagram图片的图库。 但我在画廊里只有大约33张照片。 你能帮我吗?我该如何解决这个问题?

   $response = file_get_contents('https://api.instagram.com/v1/users/' . $target . '/media/recent?access_token=' . $_SESSION['instagram_token'] . '&count=-1');

3 个答案:

答案 0 :(得分:1)

根据documentation,您使用的是一个端点,该端点将返回用户的所有最近媒体。因此,它不承诺返回所有图像。即使您指定了计数,也会返回最大数量的图像。

但是,你可以使用分页;有关信息,请参阅以下问题/答案:

Instagram API: How to get all user media?

我想你可以读取每个请求20,然后找到结果的最低id,并将其用作下一个请求的最大id。

Request 1 (no max_id)
Id 100
Id 99
..
Id 81

Request 2 (max_id=81)
Id 80
.. 
Id 61

Request 3 (max_id=61)
Id 60
..
Id 41

然后继续请求,直到您没有再收到任何媒体

答案 1 :(得分:0)

每次API调用最多会返回20张照片,您必须使用API​​响应中的pagination.url进行另一次API调用以获取下一张20张照片,依此类推。

https://api.instagram.com/v1/users/3/media/recent/?access_token=ACCESS-TOKEN

答案 2 :(得分:0)

Instagram API对其返回的结果数量施加了无声的,未记录的限制。即使您传递的count高于33,也只会返回33个结果。

我在Javascript中编写了一个hack,这样可以省去这个限制,但需要花费更多的API调用。目前,它仅在您按用户查询时才有效,但我可以实现它,因此它也适用于按标签查询,具体取决于我的可用时间和需求。

通过提交拉取请求随意贡献! (您可能希望将我所做的工作转换为PHP代码,以便您可以安全地使用访问令牌)