Instagram JSON头像提取PHP

时间:2016-04-10 02:01:19

标签: php json instagram

我想用PHP从JSON url:https://www.instagram.com/just/media/中提取任何instagram用户的profile_picture并将其打印出来。我试过了:

$instaJSONUrl = 'https://www.instagram.com/just/media/';
$json = file_get_contents($instaJSONUrl);
$json_data = json_decode($json, true);
echo $json_data["profile_picture"];

不工作..如果我只打印$ json,我得到:

{status":"ok","items":[],"more_available":false}

这意味着问题在于读取URL。这是否意味着我需要访问令牌,因为我不想使用访问令牌,因为当我从浏览器中打开https://www.instagram.com/just/media/时,我已经可以获取配置文件图像URL。

2 个答案:

答案 0 :(得分:1)

这将产生一系列用户及其图片资料链接。

<?php

$instaJSONUrl = 'https://www.instagram.com/just/media/';
$json = file_get_contents($instaJSONUrl);
$json_data = json_decode($json, true);

$users = array();

foreach($json_data['items'] as $item)
    foreach($item['comments'] as $comment)
            foreach($comment as $profile)
                    $users[$profile['from']['username']] = $profile['from']['profile_picture'];


print_r($users);

答案 1 :(得分:0)

通过直接访问元标记进行管理,特别是<meta property="og:image"标记,具体如下:

libxml_use_internal_errors(true);
$c = file_get_contents($instaURL);
$d = new DomDocument();
$d->loadHTML($c);
$xp = new domxpath($d);

然后我可以打印出图像网址:

foreach ($xp->query("//meta[@property='og:image']") as $el) {
   echo $el->getAttribute("content");
}


您甚至可以使用它来访问特定Instagram用户的其他属性,例如og:urlog:description

这适用于所有需要访问&amp;获取Instagram用户数据(基本:profile_image,profile_url,profile_description等),无需处理Instagram的API。