Иногда у веб-разработчиков возникает необходимость размещения фотографий из инстаграма на своих сайтах или сайтах заказчиков. И поскольку работа программиста заключается в автоматизации различных процессов, данная задача не является исключением. Поэтому одним из возможных и наиболее подходящих вариантов автоматизации данного процесса является парсинг фотографий из instagram с помощью его api. Так как в своей практике мне приходилось сталкиваться с подобной задачей, именно о ее решении и пойдет речь в данной статье.
Как получить данные из инстаграм?
Чтобы в ответ на ваш запрос инстаграм возвращал json данные, с которыми можно будет работать, необходимо получить access_token. Как получить access_token написано в статье: «Как получить токен в инстаграм (access_token)».
Для того, чтобы получить фотографии из своего аккаунта, необходимо отправить следующий GET запрос:
https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS-TOKEN
Для этого, в нашем случае мы будет использовать библиотеку curl. Код на получение данных будет иметь следующий вид:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS-TOKEN");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
?>
Не забываем заменить ACCESS-TOKEN на свой. В итоге в переменную $content получаем json ответ из инстаграм.
Что дальше?
Поскольку, теперь у нас есть все необходимые данные, записанные в переменной $content все, что остается — это декодировать нашу переменную функцией json_decode и работать с ней как с объектом для получения необходимых данных.
Для примера, код на получение и вывод фотографий может иметь следующий вид:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS-TOKEN");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// получаем данные
$content = curl_exec($ch);
curl_close($ch);
// декодируем данные
$contentJson = json_decode($content);
if($contentJson):
?>
<?php foreach($contentJson->data as $pic): ?>
<div><img src="<?php echo $pic->images->standard_resolution->url;?>"></div>
<?php endforeach; ?>
<?php
endif;
?>
Кроме фотографий, в переменной $contentJson нам доступна прочая информация, например: ссылка на изображение, количество лайков, количество комментариев и прочее.
Парсер для наших фотографий готов, и при добавлении новых фотографий в аккаунте инстаграм данные фотографии появятся и на нашем сайте.
Подобным образом можно взаимодействовать с api инстаграм для реализации прочих задач, выполнение которых возможно в рамках данного api. Более подробную информацию можно найти здесь: https://www.instagram.com /developer/endpoints/