Как сделать пост с кнопкой в 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-клавиатуру. Это может быть собственный скрипт, бот-конструктор или готовая программа.
Как опубликовать пост с кнопкой
Общая схема выглядит так:
- Создать своего Telegram-бота через @BotFather.
- Добавить его администратором в свой канал и разрешить публикацию сообщений.
- Подготовить текст поста.
- При необходимости добавить фотографию, видео или другое поддерживаемое медиа.
- Создать inline-кнопку и указать для неё текст и URL.
- Отправить сообщение в канал через бота.
- Проверить опубликованный пост и работу ссылки.
В результате кнопка отображается непосредственно под публикацией.
Если сообщение уже было опубликовано самим ботом и Telegram разрешает этому боту его редактировать, Bot API также позволяет изменить inline-клавиатуру без создания нового сообщения.
Почему боту нужны права администратора
Бот и владелец канала — разные участники Telegram.
То, что вы создали бота и владеете каналом, само по себе не даёт боту права публиковать сообщения. Telegram проверяет его собственные разрешения в конкретном канале.
Поэтому при проблеме с публикацией первое, что стоит проверить:
- бот действительно добавлен именно в нужный канал;
- он назначен администратором;
- ему разрешена публикация сообщений.
Если эти условия не выполнены, программа на компьютере не сможет обойти ограничение Telegram.
Что проверить, если кнопка или публикация не работают
Пост вообще не появился в канале.
Проверьте права бота и идентификатор канала. Для приватного канала особенно важно использовать корректный идентификатор, а не обычную пригласительную ссылку.
Пост появился, но URL-кнопка ведёт не туда.
Проверьте полный адрес кнопки. Для веб-страницы лучше использовать полный HTTPS-адрес.
Кнопка нажимается, но действие бота не выполняется.
Если используется callback-кнопка, её нажатие должен обработать бот. Нужно проверить, что работает именно тот бот, который связан с этой клавиатурой, и что его обработчик получает callback.
Нужно изменить кнопку в уже опубликованном сообщении.
Если это сообщение, которым бот вправе управлять, inline-клавиатуру можно изменить через Bot API. Но из этого не следует, что бот может произвольно взять любой старый пост, опубликованный вручную владельцем канала, и получить над ним управление.
Публикуется серия сообщений и появляются временные ошибки.
У Telegram есть ограничения по частоте запросов. При их превышении Bot API может вернуть ошибку 429 и потребовать повторить отправку позднее. Поэтому корректный инструмент публикации должен учитывать такие ответы Telegram, а не просто бесконечно повторять запросы.
Когда ручная работа начинает мешать
Если нужно изредка опубликовать один пост с одной кнопкой, достаточно практически любого подходящего инструмента.
Сложнее становится, когда публикации повторяются: текст, медиа, несколько вариантов шаблона, кнопки, разные собственные каналы, проверка результата каждой отправки.
Тогда большая часть времени уходит уже не на содержание поста, а на повторение одинаковых технических действий.
SoftLitePOSTBot предназначен именно для этой части процесса. Он позволяет готовить публикации с текстом (с вариантами через spintax), медиа и URL-кнопками и публиковать их через собственных ботов в каналы, где этим ботам предоставлены необходимые права. После публикации формируется результат по успешным и неуспешным отправкам.
Программа не отменяет правил Telegram и не даёт дополнительных прав в чужих каналах — она упрощает работу с публикациями в собственных каналах.