Instagram через API и MCP: почему создание поста не под барьером записи, а публикация — под ним
Разбираем Instagram Graph API изнутри: профиль и статистика, лента и Stories, публикация по ссылке, комментарии и упоминания, хэштеги, публичные данные конкурентов, товарные метки — и почему создание контейнера публикации не трогает барьер записи, а сама публикация трогает всегда, доступно через MCP-сервер Mira без вебхуков и ревью приложения.
Обзор
Instagram — витрина большинства проектов, но данные о ней обычно видны только человеку, который сам открыл приложение. Business/Creator-аккаунт отдаёт статистику, ленту, Stories, комментарии и упоминания через Instagram Graph API — токен для него можно выпустить самому, без заявок и ревью: администратор бизнеса создаёт в Meta Business Suite системного пользователя и получает долгоживущий токен доступа.
Mira подключает этот API — 36 действий в восьми разделах — и отдаёт его в Claude через MCP.
Что доступно
| Раздел | Действий | Что даёт |
|---|---|---|
| Аккаунт | 4 | профиль, статистика, лимит публикаций, автоопределение аккаунта |
| Медиа | 8 | лента, метрики поста/Reels/Stories, публикация по ссылке, изменение и удаление |
| Stories | 1 | активные истории (живут 24 часа) |
| Упоминания | 4 | посты и комментарии, где отметили аккаунт, ответ на упоминание |
| Комментарии | 7 | список, ответ, скрытие, удаление |
| Хэштеги | 4 | поиск, топ и свежие посты, история поисков |
| Публичные данные | 1 | статистика ЧУЖОГО бизнес-аккаунта без его согласия (business discovery) |
| Товары | 7 | метки на посте, поиск и список каталогов, апелляция по отклонённому товару |
Публикация — не то, что вы думаете
Публикация поста в Instagram Graph API устроена в два шага: сначала создаётся контейнер (POST /media с image_url или video_url), потом отдельным вызовом (POST /media_publish) он становится постом. Это интуитивно похоже на устройство Модульбанка, который мы разбирали раньше: там создание платёжного поручения не тратит денег, тратит только подписание. Здесь напрашивается та же логика для барьера записи — но она не работает буквально.
У Модульбанка черновик платежа виден человеку в личном кабинете, пока его не удалят, — это состояние, которое существует и меняется. У Instagram контейнер публикации не виден никому и нигде: он не появляется в интерфейсе приложения, не связан с профилем ни на секунду, и Meta удаляет его сама через 24 часа, если публикация не случилась. Внешнего следа не остаётся, даже если контейнер так и не станет постом. Поэтому в Mira под барьером записи стоит только сама публикация (media_publish) — а не создание контейнера. Разница не в осторожности, а в том, чем на самом деле являются эти два состояния.
Токен — не в URL
Документация Meta показывает примеры с токеном в query-строке: ?access_token=.... Graph API поддерживает и второй способ — заголовок Authorization: Bearer — и Mira использует именно его. Разница практическая: журналы, breadcrumbs мониторинга и логи прокси эхом печатают URL запроса гораздо чаще, чем заголовки, а токен Instagram живёт неделями (для системного пользователя — бессрочно). Заголовок закрывает этот класс утечки целиком, а не только форматирование текста ошибок.
Свой аккаунт находится сам
Почти каждое действие Graph API адресовано конкретному ID Instagram-аккаунта. Узнавать и вписывать его руками не обязательно: если поле оставить пустым, Mira сама находит аккаунт, привязанный к токену, через /me/accounts — и если он ровно один, использует его прозрачно, без дополнительного шага от человека.
Единый конверт отказа, но код лимита прячется под обычным статусом
Meta документирует ошибки одной формой на всё API: {"error": {"message", "code", "error_subcode", "error_user_msg"}}. Здесь есть тонкость: лимит запросов Graph API часто сигналит тем же HTTP 400, что и обычная ошибка параметров, — отличить их можно только по числовому error.code (4, 17, 32 или 613). Без этой проверки временный лимит пометил бы источник сломанным наравне с действительно неверным токеном — и он пропал бы из чата на час без причины.
Новости в Telegram
Подпишитесь на каналы — новые статьи и обзоры каждый день.
Источники
Ещё по теме «MCP-серверы»
1С через OData: как достать данные учётной базы без единой строки кода на встроенном языке
Разбираем стандартный OData-интерфейс 1С:Предприятие: чем он отличается от API конкретного сервиса, как узнать, что вообще опубликовано на конкретной базе, как проводить и отменять проведение документов и как всё это работает через MCP-сервер Mira без единой строки кода на встроенном языке.
3 сентября 2026 г.Admitad через MCP: отчёты партнёрской программы без выгрузки в Excel
Разбираем advertiser API партнёрской сети Admitad: отчёты по действиям, публикаторам, площадкам и баннерам, данные программы для интеграции — и почему у рекламодателя весь этот API устроен на чтение. Как устроена выдача токена по client_id/client_secret со скоупом и как всё это работает через MCP-сервер Mira.
3 сентября 2026 г.Adv.Cake через MCP: заказы и визиты партнёрской сети без захода в кабинет
Разбираем API рекламодателя Adv.Cake — партнёрской сети: список заказов и визитов, которые привели партнёры и вебмастеры, с суммой, комиссией и ДРР, плюс валидация рефералов. Три метода вместо привычных полусотни — и почему один из них, несмотря на GET, требует разрешения на запись. Всё это работает через MCP-сервер Mira без единой строки кода.
3 сентября 2026 г.