我试图使用实时图片动态 API来获取具有特定标签的所有照片,因为他们进来,因为从这个API的更新真的只能告诉你的是新的内容存在(但不是什么它是),我查询每当我收到有关某些内容发生变化的通知时,对于带有我标记的最近媒体
我遇到的问题是我经常收到该查询返回的重复媒体.文档说这个API做了分页,但我根本无法工作.
这里的文档说使用min_id
和max_id
在您的查询字符串中控制分页,但它说:
MIN_ID - 在此min_id之前返回媒体.
MAX_ID - 在此max_id之后返回媒体.
这似乎是倒退(通常min应该返回高于最小值的项目,max应该返回低于最大值的项目,这样当你指定两者时你得到一个有界范围).
我从查询中获取的实际JSON包括一个这样的分页对象:
"pagination": { "next_max_tag_id": "1387272337517", "deprecation_warning": "next_max_id and min_id are deprecated for this endpoint; use min_tag_id and max_tag_id instead", "next_max_id": "1387272337517", "next_min_id": "1387272345517", "min_tag_id": "1387272345517", "next_url": "https://api.instagram.com/v1/tags/cats/media/recent?access_token=xxx&max_tag_id=1387272337517" }
在指定的参数next_url
属性max_tag_id
,而不是max_id
像文件说.
还有一个弃用警告声明next_max_id
并且min_id
已弃用,但由于分页对象中有属性,因此我不知道查询参数或对象属性是否已弃用.
我认为这意味着属性,因为查询字符串从未使用过参数next_max_id
,但随后弃用消息表示使用min_tag_id
并且在分页对象上max_tag_id
没有max_tag_id
属性(只是a next_max_tag_id
).
无论所有这些相互矛盾的文档如何,我在查询字符串中传递的内容似乎并不重要 - 我继续在后续查询中获得重复媒体.有人可以帮我理解这个API吗?我真正想要的是获得自我上次查询以来新标记的媒体.
@zachallia已经回答了现场,但我认为它不会受到草图伤害:
正如Instagram API所说:
MIN_TAG_ID Return media before this min_tag_id.
MAX_TAG_ID Return media after this max_tag_id.
这是违反直觉的,略带坚果的味道.但是,仍然可以理解它.
该/tags/MYTAG/media/recent
端点会给你克,由他们在那里如何重新标记MYTAG订购.当然,你不会得到所有克,只要达到Instagram设定的限制:
|yesteryear ------------------ <---- LIMIT ----> now|
如果你这样使用min_tag_id
,/tags/MYTAG/media/recent?min_tag_id=X
你将从X和之前(也就是更老)得到克:
|yesteryear ------- <---- LIMIT ---> min ------- now|
如果你使用max_tag_id
像这样/tags/MYTAG/media/recent?max_tag_id=Y
你会从Y和后(又名新)获得克:
|yesteryear ------- max <---- LIMIT ---> ------- now|
这就是"max"表示"更新"和"min"表示"更老"的方式.
要获取特定标记的最新克数,请使用以下代码:
https://api.instagram.com/v1/tags/latergram/media/recent?access_token=TOKEN
从该响应中,您可以通过min_tag_id
从响应中获取(在分页下)从相同标记中获取更新的克,并构建如下所示的URL:
https://api.instagram.com/v1/tags/latergram/media/recent?access_token=TOKEN&min_tag_id=1387332980547
或者,您可以使用原始响应中的next_url参数(也在分页下)获取下一个(较旧的)克数,如下所示:
https://api.instagram.com/v1/tags/latergram/media/recent?access_token=TOKEN&max_tag_id=1387332905573
确保您的后续查询(对于特定标记的新克)使用min_tag_id
最新响应返回的查询.我做了一些测试,并没有看到重复,但我使用的是#latergram而且那个帖子数量很大