有没有办法在没有登录的情况下使用PHP提取Instagram Feed?

时间:2016-06-02 00:18:12

标签: php instagram

似乎此解决方案不再有效 -

How to get a user's Instagram feed

新API需要一个访问令牌,该令牌在通过登录页面后动态分配。有没有办法仍然通过PHP以编程方式提取Feed而不跳过新的oauth篮球?这对于设置crontab以自动将新帖子保存到数据库非常有用。

4 个答案:

答案 0 :(得分:26)

是的,你可以。您无需登录或access_token即可获得最新的20个帖子。您只需要解析https://www.instagram.com/[USERNAME]/media/中的json内容。 将[username]替换为Instagram user_name

例如

$instaResult = file_get_contents('https://www.instagram.com/'.$username.'/media/');
$insta = json_decode($instaResult);

更新: Instagram已更改用户媒体rss网址。为了获得rss feed你现在必须使用 https://www.instagram.com/[USERNAME]/?__a=1

更新: 以上解决方案已弃用,访问令牌是获取Instagram Feed所必需的。因此,不要浪费时间寻找不需要访问令牌的解决方案。

答案 1 :(得分:1)

试试这个php库:https://github.com/postaddictme/instagram-php-scraper

以下是示例(https://github.com/postaddictme/instagram-php-scraper/blob/master/examples/getAccountMediasByUsername.php):

mystrings = [string for code1, string for code5, string for code11]

答案 2 :(得分:0)

我们仍然可以访问照片。但只有最后12张照片。如果要更多照片,access_token要求。这是我获取照片的方式。

$instaResult = file_get_contents('https://www.instagram.com/'.$username.'/?__a=1');
$insta = json_decode($instaResult);
$instagram_photos = $insta->graphql->user->edge_owner_to_timeline_media->edges;

现在,我们得到了最后一个照片阵列。

比起我在foreach循环中使用的视图。

<ul>
@foreach($instagram_photos as $instagram_photo)
   <li>
       <img src="{{$instagram_photo->node->display_url}}">
   </li>
@endforeach
</ul>

答案 3 :(得分:-2)

这不再起作用:

https://www.instagram.com/zahidrasheed/?__a=1

这有效:

https://www.instagram.com/zahidrasheed/?__a=1