Кнопки в постах Telegram-канала: как создать бота в BotFather и добавить inline-кнопки

· 4 min

Как сделать кнопки в постах Telegram-канала: создать бота в BotFather, назначить его админом канала и публиковать посты с inline-кнопками-ссылками.

Кнопки под постом в Telegram-канале («Подробнее», «Записаться», «Купить») называются inline-кнопками, и это функция ботов: в API Telegram разметка с кнопками описана как «reply markup for sending bot buttons». Поэтому, чтобы добавить кнопки в пост канала, нужно создать бота в @BotFather, сделать его администратором канала и публиковать пост от имени бота. Ниже — пошагово и с правилами, которым должны соответствовать кнопки.

Какие бывают inline-кнопки

Согласно описанию возможностей ботов, inline-клавиатура показывается прямо под сообщением, а нажатие на кнопку не отправляет в чат новое сообщение. Основных видов два:

  • Кнопки-ссылки (URL) открывают адрес: сайт, страницу товара, другой канал, чат с поддержкой.
  • Callback-кнопки передают данные боту, чтобы он отреагировал, — для этого нужен бот со своим кодом.

Для постов в канале почти всегда хватает кнопок-ссылок. В Bot API у каждой кнопки есть текст и ровно одно действие; для кнопки-ссылки это HTTP- или tg://-ссылка. Кнопки располагаются рядами: можно поставить две короткие рядом и одну широкую под ними.

Шаг 1. Создайте бота в BotFather

  1. Откройте @BotFather (проверьте синюю галочку верификации) и отправьте /newbot.
  2. Задайте имя, например «Новости Ромашки», — его видят в профиле бота.
  3. Задайте username: он должен заканчиваться на bot (например, romashka_news_bot), иметь длину от 5 до 32 символов и состоять только из латинских букв, цифр и подчёркиваний.
  4. BotFather пришлёт токен вида 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw.

По желанию: /setuserpic — логотип, /setdescription — короткое описание бота. Если бот будет работать и в группах, проверьте, что включён /setjoingroups; для каналов это не важно.

Шаг 2. Сделайте бота администратором канала

Бот может публиковать только в канале, где он администратор с правом публикации сообщений. В приложении: настройки канала → Администраторы → Добавить администратора, найдите бота по username и оставьте право «Публикация сообщений». Лишние права, например добавление новых админов, можно отключить.

Для одного-двух каналов это несложно, а для двадцати — утомительно; ниже показано, как сделать это сразу во всех.

Шаг 3. Подготовьте пост с кнопками

Хороший пост с кнопками:

  • Одно главное действие. Пост с шестью кнопками собирает меньше кликов, чем с одной очевидной.
  • Короткий текст кнопки. Два-четыре слова, лучше с глаголом: «Скачать гайд», «Записаться на демо».
  • Рабочие ссылки. Проверьте каждый URL до публикации: битая ссылка под постом в пятидесяти каналах — неприятность. Работают https:// и tg://; просто текст ссылкой не станет.
  • Ряды, удобные на телефоне. Не больше двух коротких кнопок в ряду.

Если ссылка изменилась, пост переопубликовывать не обязательно: в Bot API есть метод editMessageReplyMarkup, который заменяет кнопки в уже отправленном ботом сообщении.

Как это сделать в Telegramte

  1. Подключите бота: в разделе Боты → Подключить бота вставьте токен. Он хранится на сервере в зашифрованном виде.
  2. Назначьте админом сразу везде: на странице Группы и каналы выберите каналы и нажмите «Добавить бота». Telegramte назначит бота админом через ваш подключённый номер, который владеет этими каналами или является в них админом с правом добавлять администраторов.
  3. Создайте пост: в массовом постинге выберите отправителем бота, напишите и отформатируйте текст, прикрепите фото или видео и в блоке «Кнопки» добавьте одну или несколько кнопок в ряд — у каждой текст и корректная ссылка https://… или tg://….
  4. Выберите каналы и отправьте сразу, по расписанию или с повтором.

Лимиты

В FAQ для ботов Telegram указывает: не больше примерно одного сообщения в секунду в один чат, не больше 20 сообщений в минуту в одну группу и около 30 сообщений в секунду при массовых уведомлениях по многим чатам. Один пост в несколько десятков каналов при отправке через очередь укладывается в это с запасом — Telegramte ставит отправку в очередь автоматически.

И ещё: встроенная отложенная отправка Telegram ботам недоступна, поэтому расписание для постов от бота всегда ведёт сервис, который их отправляет.

Чек-лист

  1. Бот создан через /newbot, токен хранится в надёжном месте.
  2. Бот — админ с правом публикации во всех нужных каналах.
  3. В посте одна главная кнопка с коротким текстом.
  4. Все ссылки проверены, формат https:// или tg://.
  5. Пост отправляется от бота, а не с личного аккаунта: личный аккаунт inline-кнопки прикрепить не может.

По теме: Автопостинг в несколько Telegram-каналов · Повторяющиеся публикации в Telegram