我想用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。
答案 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:url
和og:description
。
这适用于所有需要访问&amp;获取Instagram用户数据(基本:profile_image,profile_url,profile_description等),无需处理Instagram的API。