Instagram /?__ a = 1访问被拒绝

时间:2018-04-13 19:35:27

标签: android instagram instagram-api

我的问题是关于新的Instagram更新,新的Instagram更新我无法再访问公共页面JSON格式      https://www.instagram.com/nasa/?__a=1。我正在使用

`AsyncHttpClient client;
 client.get("https://www.instagram.com/nasa/?__a=1", 
 newTextHttpResponseHandler()`

我正在使用Android工作室,有关如何继续的任何建议,我得到了 访问www.instagram.com被拒绝

2 个答案:

答案 0 :(得分:3)

这是其中一个未记录的端点,它必须在某些时候停止,因为它不应该被公众访问。 建议不要在您的应用中使用这些未记录的端点,而是使用Instagram API。

4月13日更新

你可以使用这个php解决方案获得 USER_ID ,我还没有测试过,但你可以试试: -

$name = "{username}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.instagram.com/$name/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http=="200") {
  $doc = new DOMDocument();
  $doc->loadHTML($result);
  $xpath = new DOMXPath($doc);
  $js = $xpath->query('//body/script[@type="text/javascript"]')->item(0)->nodeValue;
  $start = strpos($js, '{');
  $end = strrpos($js, ';');
  $json = substr($js, $start, $end - $start);
  $data = json_decode($json, true);
  $user_id = $data["entry_data"]["ProfilePage"][0]["graphql"]["user"]["id"];
} 

原帖:https://stackoverflow.com/a/49479992/9565955

答案 1 :(得分:0)

我也遇到了这个问题 - 这是一个简单的javascript实现,带有ajax请求,然后解析JSON。我需要一个适用于我自己网站的解决方案,而不想进入并处理他们的开发人员实施和身份验证。

我去寻找替代方法来检索数据,开始请求整个主页面,将html解析为jquery并以这种方式迭代它。在这样做的过程中,我发现页面上的脚本与?__a=1请求的脚本几乎相同:

<script type="text/javascript">window._sharedData = ...

我简单地剥离了脚本的window._sharedData =部分以及尾部分号,就像使用?__a=1请求一样解析,并以相同的方式使用数据 - 实际帖子数据稍微嵌套得更深,但它就在那里。