Работа с API Instagram

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

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

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

Регистрация в разделе для разработчиков Instagram

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

Register a New Client Instagram

После отправки формы вы получите 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, обновлено 09.01.2021
24042

Комментарии

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

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

Публикация записей на стену сообщества VK
Для начала вы должны быть авторизированы в VK и являться администратором группы или страницы. Далее нужно создать...
31414
+9
Бот Телеграм на PHP
Примеры как зарегистрировать бота в Телеграм, описание и взаимодействие с основными методами API.
141407
+44
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
28472
+8
Интеграция с платежной системой PayKeeper в PHP
Платежная платформа PayKeeper позволяет принимать оплату заказов по ссылке, используя данный метод можно с легкостью...
9540
+1
Публикация на страницу Facebook через PHP
Facebook ограничил свободный доступ к API. Теперь чтобы получить права для публикации записей нужно...
15747
+1
Авторизация на сайте через Facebook
Инструкция, как получить данные пользователя Facebook через авторизацию OAuth.
22713
+9