几个月前,Instagram开始通过删除大多数功能并拒绝接受大多数权限范围的新应用程序来使其公共API无法运行.本周进行了进一步的修改,进一步限制了开发商的选择.
我们中的许多人已转向使用Instagram的私有Web API来实现我们以前的功能.一个突出的ping/instagram_private_api设法重建大部分先前的功能,但是,随着本周公开宣布的更改,Instagram也对其私有API进行了基础更改,需要魔术变量,用户代理和MD5哈希来进行网络抓取请求可能.这可以通过跟踪先前链接的git存储库上的最新版本来看到,并且可以在此处看到继续获取数据所需的确切更改.
这些变化包括:
https://instagram.com/获取rhx_gis魔术密钥.X-Instagram-GIS标头,它是通过rhx_gis在传递MD5哈希之前神奇地连接键和查询变量而形成的.任何小于此值都会导致403错误.这些更改已在上述存储库中成功实现,但是,我在JS中的尝试仍然失败.在下面的代码中,我试图从用户时间轴中获取前9个帖子.确定这个的查询参数是:
query_hash的42323d64886122307be10013ad2dcc44(取从用户的时间轴媒体).variables.id 任何用户ID作为字符串(从中获取媒体的用户).variables.first,要获取的帖子数,作为整数.以前,https://www.instagram.com/graphql/query/?query_hash=42323d64886122307be10013ad2dcc44&variables=%7B%22id%22%3A%225380311726%22%2C%22first%22%3A1%7D由于URL不受保护,因此可以通过简单地从GET中获取此请求而无需任何上述更改.
但是,我尝试实现在上述存储库中成功编写的功能不起作用,我只收到来自Instagram的403个回复.我在节点环境中使用superagent作为我的请求库.
/*
** Retrieve an arbitrary cookie value by a given key.
*/
const getCookieValueFromKey = function(key, cookies) {
const cookie = cookies.find(c => c.indexOf(key) !== -1);
if (!cookie) {
throw new Error('No key found.');
}
return (RegExp(key + '=(.*?);', 'g').exec(cookie))[1];
};
/* …Run Code Online (Sandbox Code Playgroud) http://www.theverge.com/2015/7/6/8899807/instagram-1080p-pictures-photo-upload
Verge最近公布了Instagram的最新应用版本正在以1080x1080分辨率上传照片.浏览网站的源代码时,可以通过HTML轻松获取这些照片.可以通过官方Instagram API访问这些吗?如果是这样,怎么样?
两天前使用cookie ig_pr几天后就是块了.看起来现在获取数据的唯一方法是使用sessionid特定值
我使用Instagram?__ a = 1 url来阅读Instagram用户的所有帖子.
几个小时前,响应发生了变化,现在不允许我使用max_id分页.
在我经常发送请求之前
https://www.instagram.com/{{username}}/?__a=1
并graphql.edge_owner_to_timeline_media.page_info.end_cursor在响应中使用新的max_id调用同一页面
https://www.instagram.com/{{username}}/?__a=1&max_id={{end_cursor}}
现在end_cursor每个call&max_id 的更改都不起作用.
请帮忙 :)
Instagram login API is in use. After approving the app, the following error occurs.
The user denied your request.
It worked well until yesterday. What's the problem?
有时,当尝试抓取 Instagram 媒体时,可以在 URL 末尾添加 (?__a=1)
例如:https: //www.instagram.com/p/CP-Kws6FoRS/ ?__a=1
返回的响应
{
"__ar": 1,
"error": 1357004,
"errorSummary": "Sorry, something went wrong",
"errorDescription": "Please try closing and re-opening your browser window.",
"payload": null,
"hsrp": {
"hblp": {
"consistency": {
"rev": 1005622141
}
}
},
"lid": "7104767527440109183"
}
Run Code Online (Sandbox Code Playgroud)
为什么会返回此响应?我应该如何解决此问题?另外,我们还有其他方法来获取视频和照片 URL 吗?
Facebook最近推出了Instagram Graph API,它允许从连接到Facebook公司页面的Instagram页面获取数据,Instagram.com/ developers说:
在Instagram的图形API是目前提供给所有开发.
对于非商业Instagram帐户,请继续使用现有的Instagram API.
因此,例如,如果我的公司有帐户instagram.com/my_first_company,我只能检索其Feed而不是其他人.
从旧的API文档中,使用旧的Instagram API来检索public_content权限(访问任何Feed)也不再是一个选项:
public_content - 代表用户阅读任何公开的个人资料信息和媒体(不再接受申请)
public_content权限的现有工具会发生什么?(例如,有各种CMS的插件,可以显示最近的Instagram照片)public_content(访问任何Feed)(除了获取Instagram网站的HTML页面)?UPD.似乎有一个?__a=1端点允许访问任何没有任何令牌的公共源的近期照片.但这不是官方的,没有人知道Instagram何时/是否会关闭它.如果你这样做 - 请告诉我.
UPD 2. Instagram删除了?__a=1端点,不确定多久,可能永远.目前访问Instagram Feed的唯一方法是废弃instagram.com网站,这是一个恐怖.
我有一个应用程序使用此请求url https://www.instagram.com/anyuser/media获取公共ig json,
但现在它不再工作了.
我查了Instagram博客,没有发现任何公告.
有谁知道发生了什么?
我正在使用Instagram feed API在我的网站上显示我的Instagram帖子.但是某些视频网址显示" 网址签名已过期 ".
对我有什么解决方案?
http http-error http-status-code-403 instagram instagram-api
我使用这个端点工作了好几次,似乎从本周我传递max_id值时会抛出一个错误,它说:
{
"meta": {
"error_type": "APIInvalidParametersError",
"code": 400,
"error_message": "max_id must not be a media id."
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里可以找到api是否改变了行为或者只是它被打破了.
伙计们,你有什么想法吗?
我发现的另一个错误是查询此端点时返回的媒体的顺序.这是一个示例数据:
#sample error
[
Media: 1220853576116214570_1383882821
Media: 1220853572180739674_233961632
Media: 1220853571106323542_44255974
Media: 1220853327487332588_16383867
Media: 1220853529276039536_37204591
Media: 1220853517236612185_1342227858
Media: 1220853478513480317_596571
Media: 1220853329006327307_299159508
Media: 1220853296836482014_1829274963
Media: 1220853282356978078_1498664215
Media: 1220853191933038656_528166155
Media: 1220481246711237359_211289081 #MEDIA INCORRECT ORDER
Media: 1220853144521663282_3026017167
Media: 1220853127735637950_619046756
Media: 1220853103550902683_2074401387
Media: 1220853106444172011_3020165605
Media: 1220449359646948005_208916789 #MEDIA INCORRECT ORDER
Media: 1220853071011680880_596571
Media: 1220852985861033044_446238634
Media: 1220852995848611111_3098675456
Media: 1220852944343050919_1126655937
Media: 1220852926209616200_327453609
Media: 1220852902671104371_351483533
Media: 1220852898165133786_207127275
Media: 1220852887618705294_1736270372 …Run Code Online (Sandbox Code Playgroud) 有没有人知道最新的Instagram新闻:"从10/1/2017开始,除了基本许可之外的所有权限都无法提交或获取."
这是什么真相?如果我们之前提交,他们还会检查提交的内容吗?他们是否计划禁止旧的已批准的API访问?
如果有人让它找到了一些关于这方面的信息,我将非常感激.这个消息有点令人惊讶和关注,没有任何解释.
谢谢!
instagram-api ×10
instagram ×9
javascript ×2
api ×1
facebook ×1
http ×1
http-error ×1
media ×1
web-scraping ×1