没有个人资料页面索引,但我有登录和注册页面



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

它运行得很好,但突然之间,什么都没有用。我有一个错误,是"配置文件页:未定义的索引" 我做了很多var_dump,我注意到json不再有这个索引,它变成了LoginAndSignupPage。

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

https://i.stack.imgur.com/soqT1.jpg

你有什么想法吗?

谢谢你的帮助

问题是Instagram在过去一周左右的时间里限制了他们的未登录(访客(访问(基于IP地址(。

在对其服务器进行大量查询后,他们将开始显示"请登录"页面((。

解决此问题的唯一方法是让希望使用此过程的Instagram上的每个用户创建一个API密钥(这是不现实的,因为主要是我们不认识他们(。否则,我们在向Instagram发出请求时需要使用代理,这样它就不会看到您从同一IP地址多次访问他们的服务器。

在尚未到达Instagram服务器的全新IP地址上使用代码就可以了。但是,经过多次查询(一旦IP被列入黑名单(,我得到的是相同的登录页面,而不是Instagram帐户。

根据Instagram的API文档,他们希望您为每个希望提取照片的用户提供一个API密钥(将API密钥保持在沙盒模式(。这对我来说似乎又是不现实的。我们"可以"在Instagram上提交我们的应用程序以供审核(理论上"可以"允许您从同一API密钥中提取其他用户的照片(,但我非常怀疑他们会批准从服务器中提取图像和元数据的应用程序。

使用代理,最好的住宅代理,似乎 Instagram 开始积极禁止 IP,并且他们很难限制它。

任何被禁止的IP都被路由到LoginAndSignupPage,因此您无法提取信息。由于它基于 IP,除非他们的 IP 也被阻止,否则可能不会发生在每个人身上。

它对我有用:

var name = "you_profile";
$.get("https://www.instagram.com/" + name + "/?__a=1", function(json) {
if (json) {
edges = json.graphql.user.edge_owner_to_timeline_media.edges;
$.each(edges, function(n, edge) {
var active =  n == 0 ? 'active' : '';
$('#instagram').append(
'<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>'
);
});
}
});

最新更新