Кнопки внутри сообщения Telegram:
что изменилось для каналов
Раньше кнопки в Telegram жили одним блоком под сообщением. С 25 августа 2026 года их можно ставить прямо внутри текста — между абзацами, рядами по восемь штук, в четырёх стилях. Разбираем, кто может добавить такие кнопки в канал, какие типы там реально работают и что происходит с кнопками, когда пост уезжает в Макс.
Что именно изменилось 25 августа
В анонсе к 13-летию Telegram кнопки описаны одной фразой: разработчики теперь могут размещать несколько кнопок прямо внутри сообщения. Разница с привычной inline-клавиатурой не косметическая: кнопка перестала быть подвалом поста и стала таким же блоком текста, как абзац или картинка — её можно поставить в середину, между двумя мыслями.
Второе, что важно для каналов: в том же анонсе сказано, что такие сообщения можно публиковать где угодно, включая группы и каналы, «где с ними может взаимодействовать любое число пользователей». Пример Telegram приводит буквальный: шахматы, где каждый читатель играет свою отдельную партию в одном и том же посте. Дальше по списку — опросы, игры, гороскопы, просмотр и заказ товаров.
И третье, о чём стоит знать до того, как искать кнопку в приложении. Telegram честно предупреждает: «вам понадобится немного кода». Пункта «вставить кнопку» в редакторе поста нет — сообщение с кнопками отправляет бот через Bot API. Тем эта фича и отличается от соседней новинки того же дня — приветственного сообщения, которое настраивается мышкой прямо в профиле канала.
Из чего состоит кнопка
Техническая часть приехала в Bot API 10.3
от 24 августа 2026: добавились классы RichMessageButton,
RichTextButton и RichBlockButtons. Первый описывает саму
кнопку, второй — кнопку внутри строки текста, третий — целый ряд кнопок.
- Ряд — до 8 кнопок. Блок
buttons(в HTML-разметке это тег<tg-button-row>) при отправке принимает от 1 до 8 кнопок и умеет выравнивание:left,centerилиright. - Одна кнопка — одно действие. В документации
Bot API это сформулировано жёстко: кроме
textиstyleдолжно быть заполнено ровно одно поле. Варианты:url,callback_data(1–64 байта),web_app,login_urlи три разновидностиswitch_inline_query. - Четыре стиля.
danger,success,primaryиlink— последний рисует кнопку обычной ссылкой без рамки и разрешён только для callback-кнопок. - Подпись форматировать нельзя. Текст кнопки, по документации, может содержать только простой текст, кастомные эмодзи и сущность «дата и время». Жирный и курсив в подпись не положить, а вот живую дату, которая у каждого читателя отображается в его часовом поясе, — да.
Кнопки считаются в общий бюджет сообщения-статьи: до 32 768 символов и до 500 блоков, причём каждый ряд кнопок — это блок. На практике в этот потолок упереться сложнее, чем в здравый смысл читателя.
Что из этого доступно каналу
Полный список типов кнопок писался не под каналы, и часть его в канале бесполезна. Самый наглядный пример — кнопка мини-приложения: в примере разметки на странице Bot API она подписана прямым текстом «Mini App (private chats only)». Для поста в канале остаются три рабочих варианта.
- Кнопка-ссылка (
url). Самый простой случай: ведёт на сайт, на товар, на другой чат. Работает без какой-либо серверной логики — бот один раз отправил пост и больше не нужен. - Callback-кнопка. Нажатие прилетает боту событием, и он решает, что показать в ответ. Это и есть та механика, из-за которой в анонсе возникли шахматы: состояние каждого читателя бот держит у себя, поэтому один пост обслуживает сколько угодно параллельных сценариев.
- switch_inline_query. Подставляет читателю заготовленный запрос к боту — удобно, когда нужно увести человека из канала в диалог с уже введённой командой.
Практический вывод: без собственного бота-администратора кнопок в канале не будет вообще, а с ботом, но без серверной части, доступны только ссылки. Если вы уже присматривались к ботам как к инструменту автора — у нас есть разбор того, что боты умеют в Максе, логика там очень похожая.
Что происходит с кнопкой при переносе в Макс
Это как раз тот случай, где мы можем говорить не по документации, а по собственному коду. Кнопки внутри поста-статьи Репостбот разбирает так:
- Кнопка со ссылкой превращается в кликабельную ссылку в тексте поста: подпись остаётся подписью, адрес — адресом. Смысл сохраняется, теряется только рамка.
- Callback-кнопка приезжает обычным текстом. Нажимать в Максе нечего: на той стороне нет бота, который бы обработал это нажатие. Бот отмечает такой случай у себя в журнале, но отдельным сообщением владельца не дёргает — пост при этом доезжает целиком.
- Ряд из нескольких кнопок разворачивается в столбик: каждая подпись с новой строки. Восемь кнопок в ряд — это восемь строк в Максе, так что ряды-«гирлянды» в посте, который вы переносите, лучше не делать.
- Обычная клавиатура под сообщением не переносится вовсе — наш пайплайн её не читает. И в обратную сторону тоже: при переносе из Макса в Telegram клавиатура отбрасывается ещё на входе.
Первый пост-статья на связке бот не переносит молча: он спрашивает владельца, как поступать с таким форматом, и запоминает ответ в настройке «📄 Посты-статьи». Так же устроен разбор документов внутри поста — текст едет первым, вложения следом.
А в самом Максе кнопки есть?
Есть, и устроены они иначе. В Telegram клавиатура — отдельное поле
сообщения; в Максе, судя по справочнику
Bot API, это просто ещё одно вложение: элемент массива
attachments с типом inline_keyboard, лежащий там же,
где картинки и файлы.
Типов кнопок у Макса даже больше: callback, link,
open_app, message, clipboard (копирует текст
в буфер обмена), request_contact и request_geo_location.
Лимит тоже щедрее телеграмовского ряда — до 210 кнопок на сообщение:
30 рядов по 7, и до 3 в ряду, если это ссылки,
мини-приложения, запрос геопозиции или контакта.
Своей кнопкой в Максе мы пользуемся каждый день: «💬 Комментарии»
под постом в Макс-канале — это тот самый inline_keyboard,
который бот подвешивает к опубликованному посту
(как это работает). Так что технически
перенести кнопку-ссылку один в один можно. С callback-кнопкой сложнее: она
живёт только в паре со своим ботом, и копия такой кнопки в чужом
канале была бы кнопкой, которая ничего не делает. Поэтому сегодня Репостбот
сохраняет смысл, а не форму: адрес остаётся ссылкой, подпись — подписью.
Частые вопросы
Можно ли добавить кнопку в пост канала руками, без программиста?
Нет. Telegram описывает кнопки внутри сообщений как возможность для разработчиков и прямо предупреждает, что понадобится немного кода. Пункта «вставить кнопку» в редакторе поста нет — такое сообщение публикует бот через Bot API.
Сколько кнопок помещается в один ряд?
От 1 до 8. Ряд — это блок buttons, он же тег
<tg-button-row>, и у него можно задать выравнивание
влево, по центру или вправо. Рядов в сообщении может быть несколько.
Почему кнопка мини-приложения не годится для канала?
В примере разметки на странице Bot API кнопка типа web_app
подписана «Mini App (private chats only)» — она рассчитана на личные
чаты. Для канала остаются кнопки-ссылки, callback-кнопки
и switch_inline_query.
Репостбот перенесёт мои кнопки в Макс?
Не как кнопки. Кнопка со ссылкой внутри поста-статьи приезжает кликабельной ссылкой в тексте; callback-кнопка — обычным текстом, нажимать нечего. Клавиатуру под сообщением бот не переносит ни в одну из сторон.
Сломается ли перенос, если в посте есть кнопки?
Нет. Пост доезжает целиком — с текстом, форматированием и вложениями; кнопка просто теряет рамку. Первый пост-статья на связке бот отдельно согласует с владельцем, дальше выбор запоминается.
Пост со всеми блоками — и сразу в двух мессенджерах
Первая связка — бесплатно. Без карты.
Запустить @newreposterbot