Кнопки в Телеграм. Меню.
К сообщениям в ботах и рассылках Телеграм можно добавить кнопки разного назначения.
Кнопки Меню
В многошаговых Ботах Телеграм есть возможность создавать Меню с кнопками.
Такое меню принадлежит к шагу бота и всегда находится внизу под строкой ввода сообщения.

Всего 64 кнопки — до 8 кнопок в столбец и в ряд до 8 кнопок (8х8). Название кнопки может содержать до 64 символов.
В Меню доступны кнопки с действием «Переход к шагу».
Особенности кнопок Меню:

- Меню не может идти после блока «Вопрос» (т.к. в блоке «Вопрос» используются кнопки), после Текстового блока с кнопками и после «Галереи» (появляется подсказка при редактировании).
- Меню добавляется на 1 шаг. Со следующим шагом клавиатура Меню смывается. Для повторения настройте данный элемент в нужных шагах бота.

С Меню-кнопки ведите на шаг с сообщением, а дальше уже можно будет добавить вариативности.
Кнопки в блоке Текст
В Текстовом блоке добавляется до 64 кнопок — в столбец до 8 кнопок и в ряд до 8 кнопок (8х8).
В названии есть ограничение до 64 символов.
Такие кнопки можно настроить как после Текстового сообщения, так и после Картинки без текста.

Кнопки перемещаются простым перетягиванием.
— чтобы добавить новый ряд, нужно нажать «Добавить кнопку»
— чтобы добавить столбец, нужно нажать «+»
Внимание: Кнопки к текстовым сообщениям не исчезают и будут с ним скроллиться.
У подписчика всегда есть возможность нажать на эту кнопку (в теч. 7дней). При повторном клике на кнопку из предыдущих сообщений подписчик вернется обратно к этому шагу в чат-боте. Выполнение текущей цепочки бота прервется и начнется новый сценарий, который был настроен по этой кнопке.
Чтобы избежать повторного клика используйте настройку «Реагировать на клик только один раз» ↓ ↓ ↓
Один клик по кнопке
Как предотвратить повторную отправку сообщений в Телеграм по нажатию кнопок в предыдущих сообщениях?
Есть 2 варианта. Выберите подходящий для вашей воронки.
1. Одноразовые кнопки. Подходят для многошаговых ботов в блоке «Текст» и «Картинка», только для кнопок с типом «Действие».
Откройте настройки кнопки и поставьте галочку «Реагировать на клик только один раз», как показано на скриншоте:

!Обратите внимание:
- Клик запоминается на 1 месяц, если нажать на кнопку повторно через месяц, то клик будет успешно выполнен.
- Если вручную переотправить шаг с кнопкой в которой указано реагирование 1 раз, то клик сработает повторно.
- Если перезапустить бота с самого начала, то реагирование на нажатие кнопок будет обнулено и нажать на кнопку можно будет повторно.
Настройте присвоение меток после каждого шага и перед каждым шагом проверяйте наличие этой метки. Если метка есть, то можно возвращать на тот шаг, где он был. Если метки нет, то продолжить прохождение бота.
Кнопки в блоке «Вопрос»
В блоке «Вопрос» можно настроить до 20 вариантов быстрых ответов. В названии такого элемента может быть до 20 символов

Кнопки быстрых ответов к Вопросу в Телеграм (также как и в других мессенджерах) пропадают со следующим сообщением.
Кнопки в блоке «Картинка»
Только в ботах телеграм к изображению можно добавить кнопки без текстового блока, работа кнопок в этих блоках абсолютно идентична.
Статистика в кнопках
- мы отслеживаем статистику кликов в кнопках типа URL
- не отслеживаем статистику в кнопках действия
- нет статистики кликов на быстрые ответы в вопросах
Если вы не нашли ответ на свой вопрос, задайте его нам в чате внутри кабинета либо напишите на hello@bothelp.io
Получите 14 дней полного функционала платформы для создания рассылок, автоворонок и чат-ботов BotHelp.
Создание Telegram бота на PHP #3: примеры отправки сообщений с кнопками в Telegram
В новом уроке мы с вами рассмотрим отправку базовых запросов в Telegram. Я покажу вам как отправлять простые текстовые сообщения в Telegram, как отправлять кнопки и дополнительные клавиатуры.
Всю информацию по параметрам запросов мы будем брать из официальной документации Telegram.
Полный список всех записей курса находится на сайте или в публикациях на Хабр.
Все ответы от Telegram приходят в виде JSON строки. Для удобного отображения массива ответа в браузере, советую вам установить специальное расширение для браузера, которое называется JSON Viewer.
Отправка простых сообщений
Для отправки простых текстовых сообщений, нам необходимо воспользоваться методом sendMessage.
Ранее я показывал вам, как отправлять запросы с передачей параметров в URL, теперь для удобства я буду использовать запись параметров в массиве и с помощью функции http_build_query мы будем формировать строку с GET параметрами.
$token = "5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU"; $getQuery = array( "chat_id" => 1424625511, "text" => "Новое сообщение из формы", "parse_mode" => "html" ); $ch = curl_init("https://api.telegram.org/bot". $token ."/sendMessage?" . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;
Каждый запрос будет иметь переменную с записанным токеном, массив с параметрами запроса, код для создания запроса через Curl и вывод или запись полученной информации.
Отправка ответа на сообщение
Для отправки ответа на ранее созданное сообщения, вам необходимо в новом запросе sendMessage отправить дополнительный параметр reply_to_message_id, передав в него id сообщения, которое вы хотите прикрепить.
Полный запрос будет выглядеть так…
$token = "5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU"; $getQuery = array( "chat_id" => 1424625511, "text" => "Новое сообщение из формы", "parse_mode" => "html", "reply_to_message_id" => 7 ); $ch = curl_init("https://api.telegram.org/bot". $token ."/sendMessage?" . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;
Удаление сообщений из чата
Для удаления сообщений, вам нужно воспользоваться методом deleteMessage и знать id сообщения которое вы хотите удалить.
Пример кода для удаления сообщений выглядит так:
$token = "5340791844:AAEXXDduvInvQrlykV91USOQSevrPVU"; $getQuery = array( "chat_id" => 1424625511, "message_id" => 32456, ); $ch = curl_init("https://api.telegram.org/bot". $token ."/deleteMessage?" . http_build_query($getQuery)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $resultQuery = curl_exec($ch); curl_close($ch); echo $resultQuery;
Отправка кнопок в чат
На данный момент, существует 3 вида кнопок в чате, в Telegram.
- Кнопки которые прикреплены к сообщению (inline_keyboard).
- Кнопки которые располагаются под строкой ввода сообщения, они называются клавиатурой (keyboard).
- Кнопки меню команд, которые чаще всего располагаются слева от строки ввода сообщения.
Для начала давайте рассмотрим как нам добавить кнопки которые будут прикреплены к сообщению.
Для отправки таких кнопок, нам нужно воспользоваться методом sendMessage и передать ему в качестве параметра reply_markup — массив со свойствами клавиатуры.
Данный массив выглядит следующим образом…
. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 1', 'callback_data' => 'test_2', ), array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ) ), )), .
Разберём всё по порядку.
Первое важное правило — reply_markup принимает json, поэтому для создания кнопок, вам нужно конвертировать массив в JSON с помощью функции json_encode.
В массиве с параметрами кнопок, есть особые параметры. Эти параметры, так же, указаны в документации.

- С помощью параметра text вы можете передать текст кнопки.
- параметр url указывает ссылку, если вам нужно сделать кнопку для перехода на внешний ресурс.
- параметр callback_data указывает строку которая будет возвращена после нажатия на кнопку. Данную строку используют как команду.
Массив для кнопок имеет сложную многоуровневую систему. Первый уровень отвечает за общую запись параметров, второй уровень отвечает за ряд кнопок, третий уровень отвечает за параметры кнопки.
Таким образом, для создания 2 кнопок в одном ряду, мы будем использовать следующий код

. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 1', 'callback_data' => 'test_2', ), array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ) ), )), .
Для создания 2 рядов по 2 кнопки используйте код .

. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 1', 'callback_data' => 'test_2', ), array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ), array( array( 'text' => 'Button 3', 'callback_data' => 'test_3', ), array( 'text' => 'Button 4', 'callback_data' => 'test_4', ), ) ), )), .
И для создания одной кнопки в первом ряду и 2 — во втором, используйте следующий код.

. 'reply_markup' => json_encode(array( 'inline_keyboard' => array( array( array( 'text' => 'Button 2', 'callback_data' => 'test_2', ), ), array( array( 'text' => 'Button 3', 'callback_data' => 'test_3', ), array( 'text' => 'Button 4', 'callback_data' => 'test_4', ), ) ), )), .
Надеюсь, я смог объяснить данную тему доступно, если у вас будут вопросы, пишите их в нашем Telegram канале.
Отправка клавиатуры в чат
Аналогичные параметры имеет и массив для отправки клавиатуры в чат. Для создания клавиатуры пропишем следующий код.
. 'reply_markup' => json_encode(array( 'keyboard' => array( array( array( 'text' => 'Тестовая кнопка 1', 'url' => 'YOUR BUTTON URL', ), array( 'text' => 'Тестовая кнопка 2', 'url' => 'YOUR BUTTON URL', ), ) ), 'one_time_keyboard' => TRUE, 'resize_keyboard' => TRUE, )), .
Структура массивом для кнопок та же, но только есть отличие в названиях и количестве параметров.
Ключ inline_keyboard заменяется на keyboard.
А так же для клавиатуры добавляются 2 дополнительных параметра:
- one_time_keyboard — скрыть клавиатуру, как только она была использована. Клавиатура по-прежнему будет доступна, но клиенты будут автоматически отображать обычную, буквенную клавиатуру в чате — пользователь может нажать специальную кнопку в поле ввода, чтобы снова увидеть пользовательскую клавиатуру. Значение по умолчанию равно false.
- resize_keyboard — изменяет размер клавиатуры по вертикали для оптимальной подгонки (например, уменьшить клавиатуру, если есть только два ряда кнопок). По умолчанию установлено значение false, и в этом случае пользовательская клавиатура всегда имеет ту же высоту, что и стандартная клавиатура приложения.
- В новом уроке мы с вами разобрали самый популярный метод для работы с Телеграм ботами — sendMessage. Данный метод позволяет отправлять текстовые сообщения с привязанными кнопками и клавиатурами.
- Научились удалять сообщения
- Разобрали какие бывают типы кнопок и научились создавать массивы для гибкой структуры вывода дополнительных клавиатур и кнопок.
В следующем уроке, я вам покажу как отправлять файлы и изображения в чат.
Как сделать активную кнопку в закрепленном посте в Telegram-канале?
Когда я задалась вопросом из заголовка этой статьи — я не нашла внятной пошаговой инструкции, поэтому решила написать свою. Буду рада, если и вам, она будет полезна.
947 показов
18K открытий
Меня зовут Катя и я веду канал Дама с телеграма, где делюсь фишками продвижения для экспертов, секретами создания высокоокупаемых воронок и источниками трафика для блога.
Закрепленное сообщение в вашем tg-канале может выполнять разные функции:
- активизировать бота с выдачей подарка (лид-магнита) или воронкой на продажу трипваера
- приглашать на консультацию или напрямую в диалог с автором канала
- вести на сайт с бесплатным вебинаром или продажей вашего продукта
- вести на Google-форму
- и так далее
полезная статья
продажа продукта — переход на сайт
общение в автором канала
Это классный инструмент, который поможет вам эффективно и автоматизировано использовать ресурсы вашего блога, а также заставлять новых читателей делать те действия, которые нужны именно вам.
Пошаговая инструкция как ее сделать:
1 шаг — Вбейте в поиске телеграм @ControllerBot и запустите его, нажав кнопку «start» — «начать».
Создание кнопок в Телеграм с помощью Бота и можно ли без
Как создать кнопки в Телеграмме? Воспользуйтесь возможностями двух ботов @ControllerBot и @BotFather . Первый помогает создавать посты в приложении / браузере, а также контролировать статистику, а второй предназначен для размещения и редактирования материала. Ниже подробно рассмотрим особенности добавления клавиш в Telegram, их особенности и назначение.
Что это и как использовать
Создание кнопок в Телеграм — возможность расширить потенциал канала (особенно, в сфере бизнеса) и подвести покупателей к определенному действию. Чаще всего при нажатии специальной картинки-клавиши человек может перейти на:
- опрос;
- голосование;
- написание сообщения;
- официальный сайт компании;
- заказа товара / услуги и т. д.
Иными словами, можно создать графическую ссылку в Телеграмме и обеспечить определенную конверсию в зависимости от целей канала.
Как создать
Для получения рассмотренных выше преимуществ необходимо знать, как создать кнопку в Телеграмм канале. Для этого не нужно владеть навыками Фотошоп или использовать специальные приложения — достаточно установить специальных ботов @ControllerBot и @BotFather. Первый помогает в создании постой, а второй предназначен для постинга.
Чтобы создать клавишу в Телеграмме, сделайте следующие шаги:
- Войдите в приложение и в поисковой строке введите @ControllerBot.

- Зайдите в чат и введите команду /start.

- В ответ бот передает сообщение с возможными командами, а именно /addchanel.

- Кликните на кнопку подключения нового бота и получите инструкцию с дальнейшими действиями.
- Перейдите на @BotFather.
- Введите /start и выберите /newbot из перечня.
- Придумайте название и отправьте его сообщением в @BotFather.
- Перешлите завершающее сообщение на @ControllerBot.
- Зайдите в канал, перейдите в раздел управления и выберите «Администраторы».
- Добавьте бота в поисковую строку и выберите его.
- Настройте права для нового бота-администратора.
- Перешлите любое письмо в @ControllerBot , а после этого в чате с ботом напишите название города, по которому будет определяться пояс, выберите время и жмите «Верно».
- Войдите в чат с ботом в Телеграмме и запустите его.
- Кликните «Создать пост» и выберите канал.
- Отправьте сообщение с названием текст, изображение, реакции и ссылка кнопки.
- Прикрепите файл с картинкой.
- Добавьте реакцию и URL кнопки в Телеграмме, которую вы планируете создать.
- Настройки функции таймера удалению (по желанию).
- Жмите «Опубликовать» и проверьте работу поста и ссылки.
Как вариант, чтобы сделать кнопку можно использовать @PostiumPost_Bot . После его установки сделайте следующее:
- Жмите на «Запустить».
- Кликните на «Создать пост» и выберите канал, где планируется добавление.
- Отправьте контент в порядке: текст, картинка, реакция, ссылка.
- Загрузите картинку с кнопкой, которую вы хотите создать. Она прикрепляется автоматически.
- Добавьте реакцию и URL.
- Сделайте дополнительные настройки (по желанию).
Как видно, бот для создания кнопок в Телеграмме существенно упрощает процесс. При этом использовать их рекомендуется в комплексе. К примеру, один будет помогать в добавлении материала, его редактировании и администрировании. Второй же поможет создать кнопки в Телеграмме и использовать их для увеличения конверсии. В бизнесе таким способом проще всего привлечь человека к покупке какого-либо товара / получению услуги. Главное внимание необходимо уделять настройкам, чтобы все работало корректно.
В комментариях расскажите, удалось ли вам создать клавиши в Телеграмме, какие помощники были использованы, и с какими трудностями пришлось столкнуться при решении задачи.
