PHP

Работа с API Instagram

Чтобы работать с 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://site.com/&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);
    }
}
14 марта 2017