Instagram?__ a = 1&max_id = <end_cursor>不适用于公共用户供稿

Fra*_*sc0 8 api instagram

我一直在使用Instagram的未记录的API https://www.instagram.com/<user>/?__a=1来获取公共用户提要.

我也可以通过他们的max_id查询参数得到多个页面,如下所示: https://www.instagram.com/<user>/?__a=1&max_id=<end_cursor>

end_cursor = json_response.graphql.user.edge_owner_to_timeline_media.page_info.end_cursor
Run Code Online (Sandbox Code Playgroud)

(是的,"has_next_page"为真)

他们最近改变了他们的JSON格式,我认为他们可能已经破坏了其他功能.

"end_cursor"仍然存在,但是当我使用它时,我只是回到相同的Instagram帖子,好像我没有使用它.

为了确保我清楚,我的问题是,max_id=<end_cursor>对于公共用户Feed来说似乎不再起作用了.我仍然可以获得前12个帖子,但之后不再有.

其他人看到这个问题?

这是我所说的JSFiddle示例:https://jsfiddle.net/LLsg91ja/33/

Mar*_*ark 15

04-14-2018 - 没有更长时间的工作 - INSTAGRAM弃权了'?__ a = 1'&'?query_id = 17888483320059182' - 这不再有效!

好的,请看一下这个媒体分页:

https://instagram.com/graphql/query/?query_id=17888483320059182&id=<user_id>&first=12&after=<end_cursor>

返回:

[ '数据'] [ '用户'] [ 'edge_owner_to_timeline_media'] [ 'page_info'] [ 'end_cursor']

和媒体:

[ '数据'] [ '用户'] [ 'edge_owner_to_timeline_media'] [ '边缘']

'query_id'现在是静态的,所以只需使用:17888483320059182

'id'是"Instagram用户ID",因此您必须使用?__a=1抓取''graphql'] ['user'] ['id']

'first'是您想要返回的照片数量.只需使用12来保持媒体返回相同.

'after'是使用的新'max_id'['data'] ['user'] ['edge_owner_to_timeline_media'] ['page_info'] ['end_cursor']

我会测试更多并稍后回复.

稍后回复:

据信,"分页"使用?__a=1已被弃用.如果是真的那么没有答案可以解决?__a=1用于Instagram分页的操作直接问题.

但是这个答案中提供的代码将提供Instagram媒体的分页,它确实提供了op正在寻求的结果.

答案包含了'instagram graphql api',这是当前的api(而不是json ?__a=1hack)所以这个答案应该提供一些稳定性.

在我的实际网站上使用:

抓住id=<instagram_user_id>Instagram媒体请求的先前信息:

profile = https://www.instagram.com/<instagram_username>/?__a=1

media = https://instagram.com/graphql/query/?query_id=17888483320059182&id=<profile['graphql']['user']['id']>&first=12&after=<end_cursor>

  • 这不提供问题的答案,不应放在答案部分 (2认同)
  • @ arbaz-abid,你是对的,我不对.&page = n没有返回下一页资产,只返回第一页资产(我之前认为它很奇怪).目前?query_id = params [:query_id]和?__ a = 1&first = 12&after = params [:end_cursor]不起作用.我会尽力在有空的时候解决这个问题.(很抱歉'sophomoric'对分页的解释 - 教我十几岁的女儿如何编程,所以有时候我过度解释:dadsplaining) (2认同)
  • @WilliamHampshire这个不再工作 - query_id和__a = 1都已被弃用 - 回答你的问题,query_id被硬编码为'query_id = 1785137469418312' - 其中1785137469418312来自我不知道.再次,这不再有效.这个时候没有替代品. (2认同)