如何从Instagram API Json结果获取图片网址

0 php api json instagram

我目前正在尝试从我的Instagram Feed获取我的图片的所有网址,并将其打印在一个简单的HTML库中.

我已经设置了"一些帮助"进行身份验证并获得了一个accesstoken允许我获得包含我所有图片的JSON结果,但我完全不知道如何在JSON的帮助下获取所有图片.

我到目前为止的代码看起来像这样:

<?php
session_start();
//require_once 'src/config.php';

$n_client_id = '87fdd319f8244a728a86f3692527fb15';
$n_client_secret = '040d431d4e0247a292612229446b5240';
$n_redurect_uri = 'http://ideweb2.hh.se/~lukpal12/Startsida.php';

//require_once 'src/Instagram.php';
date_default_timezone_set('UTC');

$url = "https://api.instagram.com/oauth/access_token";
$access_token_parameters = array(
    'client_id'     =>     $n_client_id,
    'client_secret'     =>     $n_client_secret,
    'grant_type'        =>     'authorization_code',
    'redirect_uri'      =>     $n_redurect_uri,
    'code'          =>     $_GET["code"]
);
$curl = curl_init($url);
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,$access_token_parameters);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curl);

$authObj = json_decode($result);

print_r($result);

$instagram = <<<END
<a href="https://api.instagram.com/v1/users/2912979/media/recent/?access_token={$authObj->access_token}">Get pictars!</a>
END;

echo $instagram;

echo $authObj->access_token;

?>
Run Code Online (Sandbox Code Playgroud)

由于我是JSON的新手以及如何使用它,我不知道应该如何编写代码来执行我要求的操作.

经过一些搜索和一两个解释JSON的视频后我设法得到这个代码Json_decode:

$json = file_get_contents("https://api.instagram.com/v1/users/2912979/media/recent/?access_token=2912979.87fdd31.0949d22f4a714349ae84643c5af165ef");
$data = json_decode($json);
echo $data->standard_resolution[0]->url; 
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用.我已经获得了包含所有数据的JSON链接:

https://api.instagram.com/v1/users/2912979/media/recent/?access_token=2912979.87fdd31.0949d22f4a714349ae84643c5af165ef

如果有人愿意帮助我.

Dan*_*jel 6

第一个循环将给出一个具有所有分辨率的图像数组,而第二个循环将是一个只有standard_resolutions的数组,使用print_r来检查数组.

$json = file_get_contents("https://api.instagram.com/v1/users/2912979/media/recent/?access_token=2912979.87fdd31.0949d22f4a714349ae84643c5af165ef");
$data = json_decode($json);

// to get the array with all resolutions
$images = array();
foreach( $data->data as $user_data ) {
    $images[] = (array) $user_data->images;
}
// print_r( $images );

// to get the array with standard resolutions
$standard = array_map( function( $item ) {
    return $item['standard_resolution']->url;
}, $images );

// print_r( $standard );
Run Code Online (Sandbox Code Playgroud)

编辑

要将这些图像放到图库中,请使用foreach循环.有关如何使用数组的信息,请参阅PHP手册.

foreach( $standard as $url ) {
    echo "<img src=\"$url\">";
}
Run Code Online (Sandbox Code Playgroud)