我正在使用此代码从帐户中获取最后 8-10 条帖子:
$feed_instagram = file_get_contents('https://www.instagram.com/USERNAME/?__a=1');
$feed_instagram = json_decode($feed_instagram, true);
它在我的开发环境(本地)中就像一个魅力。
当我尝试在暂存开发 (AWS) 中执行相同操作时,它只会返回带有 Instagram Logo 的 HTML。
尝试了我在另一篇文章中看到的另一种方法:
$url = "https://www.instagram.com/USERNAME";
$html = file_get_contents($url);
$arr = explode('window._sharedData = ',$html);
$arr = explode(';</script>',$arr[1]);
$feed_instagram = json_decode($arr[0] , true);
也可以在本地工作,但在 AWS 环境中它看起来需要登录或其他东西:
[entry_data] => Array
(
[LoginAndSignupPage] => Array
(
[0] => Array
(
[captcha] => Array
(
[enabled] =>
[key] =>
)
[gdpr_required] => 1
[tos_version] => eu
[username_hint] =>
)
)
)
在本地,在“entry_data”中我得到一个包含我需要的所有信息的“ProfilePage”对象。
知道为什么会这样吗?谢谢。
最佳答案
解决这个两个月前的问题,似乎 Instagram/Facebook 阻止了某些服务 IPS(测试 AWS 和 Digital Ocean)。由于这个项目只需要运行两个月,所以我最终使用了带有 cron 任务的 Raspberry Pi。
关于php - 使用 Instagram 在服务器中获取数据时出现问题?__a=1 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62305627/