Работа с API Instagram

Статья неактуальна т.к. Instagram и Facebook перестали предоставлять свободный доступ к API, теперь работа ограничена только с личным профилем и доступна после проверки приложения (в Facebook отправляется запрос с обоснованием и скриншотами работы приложения).

Чтобы работать с API нужно сделать несколько действий:

1. Зарегистрироваться в разделе для разработчиков – https://www.instagram.com/developer/register/

2. После этого нужно добавить клиента (кнопка «Register a New Client»). В форме указать название и описание клиента, адрес вашего сайта и адрес редиректа (Valid redirect URIs) – он будет использован для получения токена. Важно также указать название компании, e-mail и Privacy Policy иначе клиент будет не активным.

После отправки формы вы получите CLIENT ID, далее нажав на кнопку «Manage», вкладка «Security» – нужно снять флаг «Disable implicit OAuth».

3. Далее нужно авторизовать клиента и получить access_token. Для этого понадобится сформировать ссылку подставив свои client_id, redirect_uri и перейти по ней в браузере:

https://www.instagram.com/oauth/authorize/?client_id=CLIENT_ID&redirect_uri=http://test.ru/&response_type=token

После подтверждения прав произойдет редирект на ваш сайт с access_token в URL.

Всё, можно пользоваться API, например:

Получение последних 5 фото

$client_id    = 'CLIENT_ID';
$access_token = 'ACCESS_TOKEN';
$user_id      = 'user_id'; // Цифры идущие до первой точки в ACCESS_TOKEN

$res = file_get_contents('https://api.instagram.com/v1/users/' . $user_id . '/media/recent/?client_id=
' . $client_id . '&access_token=' . $access_token . '&count=5');

$res = json_decode($res, true);
if (!empty($res['data'])) {
	//var_dump($res['data']);

	foreach($res['data'] as $row) {
		// Можно вывести фото на странице:
		echo '<img src="' . $row['images']['standard_resolution']['url'] . '">';

		// Или сохранить файл на сервере:
		$url = $row['images']['standard_resolution']['url'];
		$url = explode('?', $url);
		$ext = mb_strtolower(mb_substr(mb_strrchr($url[0], '.'), 1));
		$file = $row['id'] . '.' . $ext;
		copy($row['images']['standard_resolution']['url'], __DIR__ . '/instagram/' . $file);
	}
}
PHP
14.03.2017 , обновлено 13.11.2019

Комментарии

, чтобы добавить комментарий.

Другие публикации

Для начала вы должны быть авторизированы в VK и являться администратором группы или страницы. Далее нужно создать...
16.11.2016 9151
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
26.10.2018 3504
Примеры как зарегистрировать бота в Телеграм, описание и взаимодействие с основными методами API.
17.11.2018 14000
Ниже приведён список MIME-заголовков и расширений файлов.
11.07.2019 628
Facebook ограничил свободный доступ к API. Теперь чтобы получить права для публикации записей нужно...
13.11.2016 8602
Инструкция, как получить данные пользователя Facebook через авторизацию OAuth.
01.11.2019 381