Поиск

Работа с 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 11080

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

Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
26.10.2018 2886
Примеры как зарегистрировать бота в Телеграм, описание и взаимодействие с основными методами API.
17.11.2018 11300
Ниже приведён список MIME-заголовков и расширений файлов.
11.07.2019 493
Инструкция, как получить данные пользователя Facebook через авторизацию OAuth.
01.11.2019 208
Facebook ограничил свободный доступ к API. Теперь чтобы получить права для публикации записей нужно...
13.11.2016 8242
Многие соцсети позволяют создавать приложения и через API получать данные пользователей, поэтому их использует для...
08.10.2019 392