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

时间:2018-03-13 20:08:06

标签: api instagram

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

我也可以通过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

(是的,&#34; has_next_page&#34;是真的)

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

&#34; end_cursor&#34;仍然存在,但当我使用它时,我只是回到相同的Instagram帖子,好像我没有使用它。

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

其他人都看到了这个问题?

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

2 个答案:

答案 0 :(得分:14)

04-14-2018 - 没有更长时间的工作 - INSTAGRAM弃用了&#39;?__ a = 1&#39; &安培; &#39;?query_id = 17888483320059182&#39; - 这不再有效!

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

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

返回:

[&#39;数据&#39;] [&#39;用户&#39;] [&#39; edge_owner_to_timeline_media&#39;] [&#39; page_info&#39;] [&#39; end_cursor&# 39]

媒体:

[&#39;数据&#39;] [&#39;用户&#39;] [&#39; edge_owner_to_timeline_media&#39;] [&#39; edge&#39;]

&#39; query_id&#39;现在是静态的,所以只需使用:17888483320059182

&#39; ID&#39;是&#34; instagram用户ID&#34;所以你必须使用?__a=1来抓住[&#39; graphql&#39;] [&#39;用户&#39;] [&#39; id&#39;]

&#39;第一&#39;是你想要的照片数量。只需使用12来保持媒体返回相同。

&#39;后&#39;是新的&#39; max_id&#39;使用[&#39;数据&#39;] [&#39;用户&#39;] [&#39; edge_owner_to_timeline_media&#39;] [&#39; page_info&#39;] [&#39; end_cursor&#39; ]

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

稍后回复:

相信&#39;分页&#39;使用?__a=1已被弃用。如果是真的那么没有答案可以解决使用?__a=1进行Instagram分页的操作直接问题。

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

答案包含&#39; instagram graphql api&#39;这是当前的api(而不是json ?__a=1 hack)所以这个答案现在应该提供一些稳定性。

在我的实际网站上使用:

在Instagram媒体请求之前抓取id=<instagram_user_id>

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>

答案 1 :(得分:-2)

您可以使用:?__ a = 1&amp; page = 3