Подключение Instagram
castbase публикует через официальный API «Instagram API with Instagram Login». С вашими собственными ключами это бесплатно; если не хотите разбираться с Meta, на платном тарифе есть кнопка «Войти через Instagram» без своих ключей.
Пошаговый мастер
В кабинете: проект → «Каналы» → «Подключить Instagram»
(адрес вида /app/projects/<id>/channels/new). Мастер показывает пять шагов со ссылками на страницы Meta:
- Переведите аккаунт Instagram в Professional (Business или Creator): Настройки → Тип аккаунта и инструменты. С личным аккаунтом публикация через API невозможна.
- Создайте приложение на developers.facebook.com/apps (сценарий Business).
- Добавьте продукт «Instagram API with Instagram Login» и право
instagram_business_content_publishing. - Добавьте свой аккаунт тестером: Роли приложения → Роли → Instagram Tester; затем примите приглашение в Instagram (Настройки → Сайты и приложения → Приглашения тестеров). Пока приложение в режиме разработки, публиковать можно в аккаунты-тестеры — для своих аккаунтов это именно то, что нужно.
- Нажмите «Generate token» в разделе «API setup with Instagram login» и вставьте токен в форму castbase.
Что происходит с токеном
- Токен шифруется на нашей стороне в момент приёма ключом сервиса публикации: ядро castbase и логи открытого токена не содержат, показать его обратно нельзя.
- Токен долгоживущий (60 дней). castbase продлевает его сам, когда ему больше суток и до истечения меньше 10 дней.
Не получилось продлить — канал получает статус
reauth_required, а владельцу проекта уходит письмо (одно на каждый такой переход). Тогда подключите тот же аккаунт заново — новым токеном или «Войти через Instagram».
Переподключение
Новое подключение того же аккаунта заменяет прежний канал — и ждущий переподключения, и рабочий (так меняют токен
заранее): появляется канал с новым id, старый отключается, сервис публикации забывает его токен.
- Запланированные на старый канал посты выходят через новый — пересоздавать их не нужно.
- Упавшую цель (
failed, например сreauth_required) повторите черезPOST /v1/post-targets/{id}:retry— она уйдёт через новый канал. - Канал в статусе
reauth_requiredместо в лимите тарифа не занимает: переподключение проходит и на тарифе без свободных мест. Замена рабочего канала требует одного свободного места — до проверки токена новый каналpendingи считается в лимит. - Если подтверждение пришло от более старого подключения уже после нового, старое отклоняется с причиной
duplicate_account. - Через MCP и агентов токены не принимаются: подключение канала делается только по ссылке на мастер в кабинете.
Статусы канала
| Статус | Значение |
|---|---|
pending |
токен принят, идёт проверка («проверяем…», обычно до минуты) |
active |
подключён, в username — имя аккаунта; публиковать можно |
reauth_required |
токен больше не работает — подключите аккаунт заново (status_reason, status_message); место в лимите не занимает |
failed |
подключить не удалось: неверный токен, не Professional-аккаунт и т. п. (status_message объясняет причину) |
disabled |
канал отключён |
Причины — в каталоге: Причины статусов канала.
Подключение через API
Токен можно передать и в REST (например, при автоматической настройке). Ответ 202: канал создан в статусе pending,
итог читайте через GET /v1/channels/{id} или событие channel.connected / channel.reauth_required в
ленте событий.
curl -X POST https://castbase.ru/v1/channels \
-H "Authorization: Bearer $CASTBASE_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"platform": "instagram", "access_token": "IGAA...", "label": "основной"}'
{
"id": "01a1ab14-9628-798c-b1d0-77dbd5211c06",
"platform": "instagram",
"status": "pending",
"username": null,
"label": "основной",
"kind": "byo",
"created_at": "2026-11-05T09:00:00+00:00"
}
DELETE /v1/channels/{id} отключает канал (204); токен забывается. Если подключить тот же аккаунт повторно,
прежний канал заменяется новым.
Лимит каналов задаёт тариф (Лимиты): сверх него — 402 channels_limit_exceeded.