Instagram 公共 API (/?__a=1) 有效,但仅在某些时候有效

Posted

技术标签:

【中文标题】Instagram 公共 API (/?__a=1) 有效,但仅在某些时候有效【英文标题】:Instagram public API (/?__a=1) works, but only sometimes 【发布时间】:2021-02-18 15:03:22 【问题描述】:

所以我正在尝试使用公共 API 提取一些 Instagram 图片:

const url = `https://www.instagram.com/$username/?__a=1`;

fetch(url)
    .then(response => response.json())
    .then(data => 
        prepareImages(data['graphql']['user']['edge_owner_to_timeline_media']['edges'])
    )
    .catch(error => console.log(error));

这在 5 次中有 4 次都可以正常工作。但是,偶尔,我会收到一条错误消息:

CORS 政策已阻止从源“https://test.com”访问“https://www.instagram.com/instagram/?__a=1”获取:否“访问控制允许” -Origin' 标头存在于请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我已尝试将模式更改为“no-cors”,但这只会导致空响应。你们是否认为他们有时只是阻止请求以防止垃圾邮件?

【问题讨论】:

【参考方案1】:

您可以尝试使用 graphql,通过使用查询哈希或查询 id 在这篇文章 Instagram ?__a=1 url not working anymore & problems with graphql/query to get data 中获得更多信息

【讨论】:

以上是关于Instagram 公共 API (/?__a=1) 有效,但仅在某些时候有效的主要内容,如果未能解决你的问题,请参考以下文章

从 instagram __a=1 用 php 读取 JSON

Instagram api 在本地主机上工作正常,但在服务器上发送错误 (https://www.instagram.com/$name/?__a=1)

不要在新的 Instagram url-api 上为位置 (?__a=1) (native_location_data) 工作分页

使用cURL PHP获取instagram公共JSON feed

获取 Instagram 的页面信息

如何通过 API 获取 Instagram 头像? [关闭]