← Все статьи

Как сделать пост с кнопкой в Telegram-канале

Кнопка «Подробнее», «Записаться», «Открыть сайт» или «Перейти в бот» под публикацией в Telegram-канале — это inline-кнопка. Она не является частью текста поста: Telegram хранит её отдельно, в разметке сообщения.

Поэтому в обычном редакторе публикации канала нет поля, куда можно просто вписать такую кнопку. Для отправки сообщения с inline-клавиатурой используется бот и Telegram Bot API.

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

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

В Telegram есть два похожих по названию, но разных механизма.

Reply-кнопки отображаются вместо обычной клавиатуры в диалоге с ботом. При нажатии такая кнопка отправляет в чат соответствующий текст или выполняет другое предусмотренное действие. Для обычного поста в канале это, как правило, не тот механизм, который нужен.

Inline-кнопки прикрепляются непосредственно к сообщению. Они могут, например, открывать URL или передавать callback боту.

Для публикации в канале чаще всего достаточно URL-кнопки:

  • «Подробнее» → страница продукта
  • «Открыть каталог» → сайт
  • «Перейти в бот» → Telegram-ссылка
  • «Записаться» → форма или другой нужный адрес

Нажатие на URL-кнопку не требует, чтобы бот отдельно обрабатывал callback: Telegram-клиент просто открывает указанный адрес.

Если же кнопка должна запускать действие внутри самого бота, используется другой тип inline-кнопки, и тогда нажатие должен обработать работающий бот.

Что нужно для публикации

Нужны три вещи.

Первая — Telegram-бот. Его создают через @BotFather. После создания BotFather выдаёт токен. Токен даёт доступ к управлению ботом, поэтому его нельзя публиковать или передавать посторонним.

Вторая — канал, которым вы управляете. Бота нужно добавить в канал и выдать ему права, необходимые для публикации сообщений.

Третья — инструмент, который отправит через Bot API сам пост и inline-клавиатуру. Это может быть собственный скрипт, бот-конструктор или готовая программа.

Как опубликовать пост с кнопкой

Общая схема выглядит так:

  1. Создать своего Telegram-бота через @BotFather.
  2. Добавить его администратором в свой канал и разрешить публикацию сообщений.
  3. Подготовить текст поста.
  4. При необходимости добавить фотографию, видео или другое поддерживаемое медиа.
  5. Создать inline-кнопку и указать для неё текст и URL.
  6. Отправить сообщение в канал через бота.
  7. Проверить опубликованный пост и работу ссылки.

В результате кнопка отображается непосредственно под публикацией.

Если сообщение уже было опубликовано самим ботом и Telegram разрешает этому боту его редактировать, Bot API также позволяет изменить inline-клавиатуру без создания нового сообщения.

Почему боту нужны права администратора

Бот и владелец канала — разные участники Telegram.

То, что вы создали бота и владеете каналом, само по себе не даёт боту права публиковать сообщения. Telegram проверяет его собственные разрешения в конкретном канале.

Поэтому при проблеме с публикацией первое, что стоит проверить:

  • бот действительно добавлен именно в нужный канал;
  • он назначен администратором;
  • ему разрешена публикация сообщений.

Если эти условия не выполнены, программа на компьютере не сможет обойти ограничение Telegram.

Что проверить, если кнопка или публикация не работают

Пост вообще не появился в канале.
Проверьте права бота и идентификатор канала. Для приватного канала особенно важно использовать корректный идентификатор, а не обычную пригласительную ссылку.

Пост появился, но URL-кнопка ведёт не туда.
Проверьте полный адрес кнопки. Для веб-страницы лучше использовать полный HTTPS-адрес.

Кнопка нажимается, но действие бота не выполняется.
Если используется callback-кнопка, её нажатие должен обработать бот. Нужно проверить, что работает именно тот бот, который связан с этой клавиатурой, и что его обработчик получает callback.

Нужно изменить кнопку в уже опубликованном сообщении.
Если это сообщение, которым бот вправе управлять, inline-клавиатуру можно изменить через Bot API. Но из этого не следует, что бот может произвольно взять любой старый пост, опубликованный вручную владельцем канала, и получить над ним управление.

Публикуется серия сообщений и появляются временные ошибки.
У Telegram есть ограничения по частоте запросов. При их превышении Bot API может вернуть ошибку 429 и потребовать повторить отправку позднее. Поэтому корректный инструмент публикации должен учитывать такие ответы Telegram, а не просто бесконечно повторять запросы.

Когда ручная работа начинает мешать

Если нужно изредка опубликовать один пост с одной кнопкой, достаточно практически любого подходящего инструмента.

Сложнее становится, когда публикации повторяются: текст, медиа, несколько вариантов шаблона, кнопки, разные собственные каналы, проверка результата каждой отправки.

Тогда большая часть времени уходит уже не на содержание поста, а на повторение одинаковых технических действий.

SoftLitePOSTBot предназначен именно для этой части процесса. Он позволяет готовить публикации с текстом (с вариантами через spintax), медиа и URL-кнопками и публиковать их через собственных ботов в каналы, где этим ботам предоставлены необходимые права. После публикации формируется результат по успешным и неуспешным отправкам.

Программа не отменяет правил Telegram и не даёт дополнительных прав в чужих каналах — она упрощает работу с публикациями в собственных каналах.