Автоматически получить фотографии пользователя Instagram без Access Token

Одному из клиентов не понравился внешний вид стандартных виджетов социальных сетей, так что пришлось пилить собственную их реализацию. С vk.com и facebook.com проблем не возникло — у них есть API, который возвращает все, что нужно в удобном JSON, нужно лишь единожды зарегистрировать свое приложение и дать ему доступ. А вот с instagram дела обстояли несколько хуже. У него тоже есть API для получения постов, но запрос к этому API, согласно документации, должен быть подписан неким Access Token, генерация которого должна быть ободрена пользователем. И все бы хорошо, да вот этот самый Access Token имеет ограниченное время жизни. А какое именно — неизвестно. Вот что сказано в официальной документации:

«Хотя у токена нет определенного срока действия, ваше приложение должно обрабатывать случай, когда либо пользователь отменяет доступ, либо Instagram отклоняет токен через определенный промежуток времени. Если токен больше недействителен,
ответы API будут содержать «error_type = OAuthAccessTokenException». В этом случае вам потребуется повторно пройти аутентификацию пользователя для получения нового действительного токена. Другими словами: не предполагайте, что ваш access_token действителен навсегда.«

То есть получается, что в один прекрасный момент наше приложение может потерять доступ к аккаунту, и, чтобы его вернуть, нам придется снова попросить пользователя с нужными правами авторизоваться в инстаграме и сгенерировать новый Access Token. У меня на тестовом сервере, к которому имею доступ только я, Access Token стал недействительным в течении дня. Что же тогда будет на боевом сервере, где несколько сотен посетителей в день и больше? Неужели придется каждый раз вручную генерировать этот токен? Мне пришлось изрядно помучать гугл, чтобы найти ответ. Причем, не в официальной документации Instagram для разработчиков (хотя она, вроде бы, закрыта для не авторизованных пользователей и могла просто не попасть в индекс гугла), а на любимом https://stackoverflow.com/

Оказывается, можно получить последние 20 постов любого не закрытого аккаунта, просто отправив запрос на адрес https://www.instagram.com/[CLIENT-NAME]/media/. В ответ получите JSON с URL картинок в трех разных размерах и подписями к ним. А приложение с Access Token нужно, когда возникает необходимость получить что-то большее. Например, количество лайков или комментарии.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *