没有 ProfilePage 索引,但我有 LoginAndSignupPage

我有一个问题,前两天突然出现。我有一个 prestashop 模块,它允许我从 Instagram 页面检索图像。

它运行得很好,但突然之间,什么都不起作用。我有一个错误是“ProfilePage:未定义的索引”我做了很多 var_dump,我注意到 json 不再有这个索引,它变成了 LoginAndSignupPage。

更奇怪的是,使用相同的模块,相同的代码,它适用于预生产,也适用于本地,但不适用于生产。起初,我以为该网站的主机做了一些更改,但不,他们没有...

https://imgur.com/3utc6bB

你有什么主意吗?

感谢您的帮助


米脂
浏览 172回答 3
3回答

largeQ

问题是 Instagram 在上周左右限制了他们未登录的(访客)访问(基于 IP 地址)。在对其服务器进行大量查询后,他们将开始显示“请登录”页面 ()。解决此问题的唯一方法是让 Instagram 上希望使用此流程的每个用户创建一个 API 密钥(这是不现实的,因为主要是我们不了解他们)。否则,我们将需要在向 Instagram 发出请求时使用代理,这样它就不会看到您从同一 IP 地址多次访问他们的服务器。在未访问 Instagram 服务器的全新 IP 地址上使用代码工作正常。但是,经过多次查询(一旦 IP 被列入黑名单),我得到的是相同的登录页面,而不是 Instagram 帐户。根据 Instagram 的 API 文档,他们希望您为希望提取照片的每个用户拥有一个 API 密钥(将 API 密钥保持在沙盒模式)。这对我来说又是不现实的。我们“可以”在 Instagram 上提交我们的应用程序以供审核(理论上“可以”让您从同一 API 密钥中为其他用户提取照片),但我非常怀疑他们是否会批准从其服务器上提取图像和元数据的应用程序。

烙印99

使用代理,最好的住宅代理,似乎 instagram 开始积极禁止 IP,并且他们正在对其进行硬速率限制。任何被禁止的 ip 都被路由到 LoginAndSignupPage,因此您无法提取信息。由于它基于 IP,除非他们的 IP 也被阻止,否则它可能不会发生在每个人身上。

森林海

这个对我有用:var name = "you_profile";$.get("https://www.instagram.com/" + name + "/?__a=1", function(json) {&nbsp; &nbsp; if (json) {&nbsp; &nbsp; &nbsp; &nbsp; edges = json.graphql.user.edge_owner_to_timeline_media.edges;&nbsp; &nbsp; &nbsp; &nbsp; $.each(edges, function(n, edge) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var active =&nbsp; n == 0 ? 'active' : '';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#instagram').append(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '<div class="carousel-item col-md-3 ' + active + ' ">' + '<a href="https://instagr.am/p/' + edge.node.shortcode +'"><img src="' + edge.node.thumbnail_src +'" alt=""></a>' + '</div>'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; }});
打开App,查看更多内容
随时随地看视频慕课网APP