API Instagram Basic Display, то есть базовый интерфейс instagram API — это API для сторонних приложений и веб сайтов, с помощью которого они могут получить данные профиля пользователя Instagram, а также его видео и изображения.

Быстрая навигация:
Принцип работы API такой: сначала вы показываете пользователю окно авторизации, где он проходит процедуру аутентификации и авторизует ваше приложение для доступа к своим данным, а так же дает определенные разрешения. После аутентификации пользователь перенаправляется обратно в ваше приложение (веб сайт), в url которого будет добавлен код авторизации. Вам нужно будет получить этот код и обменять его на access token. Получив этот токен, вы сможете делать запросы к API и использовать данные и медиа, доступ к которым разрешил вам пользователь.
Не все данные пользователя будут доступны вам сразу. Для полноценной работы вашему приложению потребуется получить от пользователя следующие разрешения:.
- instagram_graph_user_profile для получения данных профиля
- instagram_graph_user_media для получения изображений, альбомов и видео.
Для того чтобы вы смогли получать от настоящего пользователя такие разрешения, вашему приложению нужно будет пройти процесс проверки. На проверку приложение необходимо будет направить после того как вы закончите процесс разработки. Сделать это можно будет на вкладке Basic Display > Проверка приложения «Instagram Basic Display»
Давайте начнем разработку.
1 Создание facebook приложения
Для начала перейдите по ссылке https://developers.facebook.com и войдите в свой facebook аккаунт. Затем нажмите вкладку Мои приложения и создайте новое. Или нажмите кнопку Начать, если вы не создавали facebook приложений ранее.

Вы окажетесь в панели facebook для разработчиков, нажмите Настройки, затем Основное. В этой форме нам понадобится заполнить данные:
- прикрепить значок приложения (JPG, GIF или PNG, не более 5 МБ, размером от 512х512 до 1024х1024)
- URL-адрес политики конфиденциальности
- выбрать категорию приложения
- выбрать для чего создается приложение: для нужд вашей компании или для оказания услуг другим компаниям
Прокрутите вниз страницы и нажмите кнопку Добавить платформу. В появившемся окне выберите Веб-сайт.

Введите адрес сайта и сохраните изменения.

2 Настройка Instagram API Basic Display
В боковой панели нажмите кнопку + рядом со словом Продукты. Внизу найдите Instagram нажмите кнопку Настроить.

Перейдите в раздел Basic Display и внизу страницы нажмите кнопку Create New App

Перед нами форма с настройками Basic Display. Желательно заполнить в ней все поля. Приступим:
3 Добавляем тестировщика Instagram
Добавим к нашему приложению пользователя для тестов. Такие пользователи могут проверять приложение только в режиме разработки. В боковой панели нажмите Роли > Роли и прокрутите страницу вниз до раздела Тестировщики Instagram. Нажмите кнопку Добавить тестировщика

Откройте новое приватное окно браузера и войдите в instagram профиль тестировщика. А в панели для разработчиков введите id этого пользователя, чтобы пригласить его. После чего тестировщику придет уведомление, с просьбой принять запрос из вашего приложения, которое тестировщик должен подтвердить. Чтобы это сделать, нужно зайти в профиль инстаграм, нажать Редактировать профиль, выбрать вкладку Приложения и сайты > Приглашения для тестировщиков.

4 Аутентификация тестировщика
Далее нам нужно создать URL для окна авторизации. Подставьте в URL ниже свои данные: APP-ID замените на id своего приложения Instagram (указан в панели для разработчиков на странице Basic Display), REDIRECT-URI замените на тот URI что мы сохранили ранее. URI предварительно нужно закодировать, чтобы он принял подобный вид https%3A%2F%2Factive-vision.ru%2Ftest%2F. Для этого можно воспользоваться этим сервисом.
URL
https://api.instagram.com/oauth/authorize?app_id=APP-ID&redirect_uri=REDIRECT-URI&scope=user_profile,user_media&response_type=code
В новом окне браузера вставьте сгенерированный URL. Должно появиться окно с именем приложения и вашего тестировщика. Нажмите авторизовать, чтобы предоставить приложению доступ к данным вашего профиля. Если все пройдет успешно, вы окажитесь на странице, которую вы указывали в поле URI. Посмотрите на URL, в конце после строки ?code= будет добавлен код авторизации. Скопируйте его без символов #_ в конце и сохраните под рукой. Этот код действует в течении 1 часа.

5 Получение токена Instagram API Basic Display
Для следующего шага нам понадобится интерфейс командной строки. Для отправки cURL запроса мы будем использовать Cmder. Отправьте следующий POST запрос в Instagram API:
cURL
curl -X POST \
https://api.instagram.com/oauth/access_token \
-F app_id=APP-ID \
-F app_secret=APP-SECRET \
-F grant_type=authorization_code \
-F redirect_uri=REDIRECT-URI \
-F code=CODE
Замените APP-ID и REDIRECT-URI как в прошлом шаге. REDIRECT-URI теперь уже не надо кодировать, убедитесь, что вы скопировали его правильно, включая все косые черты в конце. APP-SECRET можно взять со страницы Basic Display. CODE - это тот код, который мы получили в предыдущем шаге.

Если вы нигде не ошиблись, вам придет JSON объект содержащий access token и id пользователя-тестировщика. Скопируйте токен, он нам понадобится в следующем шаге.
Токены доступа пользователей Instagram не долговечны и действительны только в течении 1 часа.
6 Запрос на получения имени пользователя
Попробуем получить имя пользователя. Для этого скопируйте url ниже, и замените в нем USER-ID и ACCESS-TOKEN данными, которые мы получили ранее.
URL
https://graph.instagram.com/USER-ID?fields=id,username&access_token=ACCESS-TOKEN
Если вы все сделали правильно, Instagram API вернет вам JSON с id и именем пользователя.

Вы также можете использовать узел Me, который сам определит id пользователя Instagram, который предоставил токен. Результат будет таким же.
URL
https://graph.instagram.com/me?fields=id,username&access_token=ACCESS-TOKEN
Параметр fields может содержать следующие значения:
34 комментария
Очень странная ситуация.
Подскажите - "Этот код действует в течении 1 часа." - а что будет через 1 час?
Доступ закроется?
Я хочу у себя на сайте выводить картинки из своего Инстаграм...
Правильно ли я понял, что у них там есть каких-то два вида входа и разрешений? Вариант с instagram_graph_user_profile (+ instagram_graph_user_media) и instagram_basic (+ дополнительные)?
вот потребовалось реализовать логин с инсты. в порядок с кодом я умею. но. дурацкое но я хочу через токен аля имплицит флоу.
есть бэк на пайтоне, есть фронт на реакте, между ними прокинут рест. и на бэк для простоты удобства мне нужно передать уже готовый токен. генерить его на фронте и палить секрет инсты я не хочу. дополнительную логику для бэкенда с переработкой кода в токен тоже не хочу. а ендпоинт для имплицит флоу найти не могу. и у меня такое вот подозрение, что его вообще порезали или я просто в глаза долблюсь?
я так увидел, что вот буквально недавно фейсбушеры решили перелопатить апи инсты.
{"error_type": "OAuthException", "code": 400, "error_message": "Invalid response type: token"} когда меняю респонс тайп с кода на токен. если меняю app_id на client_id то получаю "Invalid Client ID".
и что же это за оаут2, если тут нельзя просто токен на фронт запросить или это всё-таки я криво что-то делаю? ткните пальцем, господа.
Все хорошо, очень доступно написано. Спасибо
Только вот застрял на интерфейсе командной строки. У меня windows я установил cmder для win7
Но при вводе в первой строке выводится "git-for-windows\bin\bash.exe не совместимо с вашей версией windows"
И дальше так:
curl: (6) Could not resolve host: \https
curl: (6) Could not resolve host: \-F
curl: (6) Could not resolve host: app_id=524390985899230
curl: (6) Could not resolve host: \-F
.....
Никак не проходит ... и ответов нигде нет
Пишу CRM систему, в неё необходимо внедрить инсту, так же как в Битриксе24,
аккаунт инсты - бизнес аккаунт.
Мне необходимо чтобы если кто-то прислал сообщение в Direct инсты, сообщение отображалось в интерфейсе CRM,
и можно было отвечать на эти сообщение и нужна возможность мониторить новые комментарии под фотками и если появился новый коммент, то информация сразу отображалась в CRM и так же была возможность на него отвечать.
Такое вообще возможно? Средствами API инстаграма который есть сейчас или как-то по-другому решать подобную задачу?
Но не могу понять как получить фото профиля и bio.
Подскажите, пожалуйста.
Мне необходимо выгрузить все записи из одного аккаунта инсты (к которому у меня есть доступ). Чтобы выдать эти права в ЛК, необходимо заполнить некоторые поля (логотип приложения, ссылка на политику конфиденциальности, скринкаст работы приложения на сайте и тд), которые явно предназначены для того, чтобы приложение на сайте позволяло авторизовываться (грубо говоря привязывать свой инст к аккаунту на сайту).
Но мне такой функционал совсем не нужен, мне необходим лишь доступ к 1 конкретному аккаунту с 1 конкретного сайта. Есть какой-нибудь способ дать самому себе же эти права или хотя бы получить доступ к своим же публикациям?)
Чтобы просто получить посты своего же аккаунта, не нужно проходить проверку приложения в фб. Достаточно сгенерировать токен для тестера на вкладке Basic Display http://joxi.ru/1A5MWgBFGp8MvA . Там есть баг - после генерации токен не будет отображаться в списке (возможно это только у меня такая проблема), но доступ с помощью него получить можно.
Ну и затем смотрим функционал вот здесь https://developers.facebook.com/docs/instagram-basic-display-api/guides/getting-profiles-and-media .
Важный момент, если curl из консоли вам ничего не возвращает, попробуйте использовать запрос на обычной странице (я делал через php).
Если совсем ленитесь, можете взять следующий код:
Вернет по 25 постов, остальные можете получить с помощью пагинации (в response есть уже сформированный url, просто в цикле подставляете, пока он не перестанет генерироваться)
Надеюсь, кому-нибудь поможет.
Подскажите, как получить доступ не к своему профилю, а к чужому по UserID ?
Насколько я смог понять, нужны права 'instagram_graph_user_profile,instagram_graph_user_media', но чтобы их получить, нужно пройти ревью! А чтобы пройти ревью, нужно уже их применить на практике и показать результат. Якобы документация намекает, что эти права не нужны в режиме разработки, НО!
При попытке получить данные по чужому пользователю, я натыкаюсь на ошибки 400
"data": Object {
"error": Object {
"code": 100,
"error_subcode": 33,
"fbtrace_id": "AYaezQJlaXoaudxgfaDgpqW",
"message": "Unsupported get request. Object with ID '17841433804563064' does not exist, cannot be loaded due to missing permissions, or does not support this operation",
"type": "IGApiException",
},
}
Использование генерированного в админке токена не помогает
И так же не могу авторизоваться с этими правами,
{
"error_type": "OAuthException",
"code": 400,
"error_message": "Invalid scope: ['instagram_graph_user_media', 'instagram_graph_user_profile']"
}
Захожу Тестовыми пользователем, добавленным в приложение Facebook.
Подскажите, что я упустил?...