Публикации в каналы и группы теперь можно ставить через API
Раньше пост в канал можно было создать двумя способами: руками в панели или через MCP, если вы работаете с ботом через ИИ-ассистента. Внешнему интегратору — скрипту, CRM, редакции — публикация была недоступна вовсе. При том что рассылки подписчикам через API ставить было можно.
Это странное разделение мы убрали. Теперь публикация в канал или группу — обычная операция публичного API.
Три метода
CreateChannelPost — поставить пост. Можно черновиком, можно по расписанию, можно сразу:
POST /api/v1
Authorization: Bearer bb_…
{
"method": "CreateChannelPost",
"botId": 123,
"channelId": 45,
"text": "Новая партия приехала. Забирать с четверга.",
"mode": "scheduled",
"sendAt": "2026-09-01 12:00",
"buttons": [{"text": "Каталог", "url": "https://example.com/catalog"}]
}
sendAt — местное время канала, а не серверное: если у канала выставлен свой часовой пояс, писать пересчёт руками не нужно.
GetChannelPosts — что стоит в плане: черновики, запланированное и уже опубликованное, свежее сверху. Удобно, чтобы сверить свою очередь с фактической.
DeleteChannelPost — снять запись из плана. Важная деталь: уже опубликованное сообщение этим из канала не убирается. Удаление сообщения у Telegram — отдельная операция, и делать её молчаливым побочным эффектом «удалить запись» мы не стали. Ответ прямо говорит, что сообщение осталось в канале.
Расширенные сообщения — и в рассылках тоже
Пост можно собрать не только обычным текстом. Поле richmessage принимает расширенное сообщение Telegram: заголовки, цитаты, таблицы, файлы и ряды кнопок прямо внутри поста. Подробнее о самом формате — на странице расширенных сообщений.
Тем же полем теперь можно собирать и разовые рассылки: CreateBroadcast его принимает. Поле text при этом остаётся обязательным — он и превью в списке, и запасной вариант, если расширенное сообщение по какой-то причине не соберётся. Лучше пусть подписчик получит текст, чем ничего.
Что API не даст сделать
Несколько правил, о которые проще споткнуться заранее, чем на публикации:
- Кнопки поста — только https. Адрес без схемы или с http Telegram не примет, и раньше такая кнопка молча пропадала из уже опубликованного поста. Теперь метод отвечает понятной ошибкой до публикации.
- Расширенное сообщение — только Telegram. В MAX и ВКонтакте такого формата нет, попытка вернёт объяснение, а не тихо уедет плоским текстом.
- Опубликованный расширенный пост не правится. У Telegram нет операции правки для таких сообщений — только удалить и опубликовать заново.
- Лимит тарифа действует и здесь. Канал сверх лимита виден, но работать с ним нельзя ни из панели, ни через API.
Полный справочник
Все методы с параметрами — в справочнике методов API; он собирается из кода, а не пишется руками, поэтому не расходится с тем, что сервер реально принимает. Общее описание доступов и ключей — на странице документации API.
Если бот у вас ведёт ИИ-ассистент, отдельно ничего настраивать не нужно: те же операции доступны через MCP.
Решение в BotBrother
Без кода: рассылки, приём оплат, брони, управление каналами. Бесплатный тариф для старта.
Попробовать бесплатно