Как сделать кнопки в телеграмм боте

Кнопки в Telegram

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

Типы встроенных кнопок в Telegram

Клавиатура Telegram, расположенная в ряд в строке под сообщением, подвязывается к каждой конкретной новости и позволяет ее динамически видоизменять. Чтобы их добавлять, используется специальный бот. На сегодняшний день существует 3 типа кнопок. Рассмотрим подробно каждый из них.

URL-кнопки

Как сделать кнопки в телеграмм боте

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

У них есть соответствующий ярлык, расположенный справа экрана в углу.

Switch-кнопки

Такие кнопки в телеграм-боте используют с целью перехода на другой чат с непосредственной активацией общения с программой. Чтобы подключить его вручную, можно просто прописать «@название бота». Но применение данного вида клавиш делает всю работу в автоматическом режиме, позволяя существенно сэкономить время.

Callback-кнопки

Этот вид иконок считается самым интересным в Телеграм. Они имеют обратную связь и нужны для динамического обновления поста без засорения ленты и располагаются в модальном окне или верхней части экрана.

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

Работа с ControllerBot и BotFather

Эти боты позволяют создавать управление собственной записью и ее форматирование.

Юзеры, которые решат их поставить, смогут:

Те, кто знаком с языком программирования питон, могут создать любой bot самостоятельно.

Подключение к каналу и настройка

Рассмотрим порядок работы с ботом на примере Controllerbot. Для начала его нужно создать. Зайдя в @BotFather, необходимо кликнуть на Старт и написать команду /newbot.

Далее алгоритм следующий:

Добавление реакций

Как сделать кнопки в телеграмм боте

Это своеобразные лайки, по примеру других социальных сетях. Возможности обсуждать информацию внутри групп здесь обычно нет, потому эмодзи помогают отследить реак-цию читателей на контент.

Чтобы сделать такую кнопку в телеграм-канале, нужно:

Добавление URL-кнопки

Это специальные клавиши, в которые прячут ссылки, позволяющие переходить к опросу, голосованию, другому каналу или сайту. Чтобы их разместить, после написания сообщения, выбирается пункт «Добавить урл» и вводится имя по формату «название-ссылка».

Виджет обратной связи с Telegram

Существует несколько вариантов:

Выводы

Чтобы следить за реакцией читателей на посты автора, подписываться на канал, делать репосты, проходить голосования, Телеграм использует специальные кнопки. Те, кто знаком с программированием способны создать их самостоятельно. Для всех остальных существуют специальные сервисы, позволяющие делать боты за несколько кликов.

Детальная инструкция видна на видео:

Источник

Как в Телеграме можно сделать кнопку для бота на канале, пошаговая инструкция

Как сделать кнопки в телеграмм боте

Мессенджер Telegram дает пользователям массу возможностей для общения и получения информации. Также человек может создать собственный Телеграм-канал. После этого наверняка встанет вопрос о наращивании аудитории. Чтобы осуществить задуманное, необходимо внимательно подойти к оформлению канала и подумать над тем, как сделать кнопку со ссылкой в Телеграме. Это поможет привлечь новых подписчиков и повысить лояльность старой базы.

Типы встроенных кнопок

Функционал Telegram позволяет интегрировать разные виды кнопок, для каждого из которых характерно определенное назначение. Знания о типах подобных интерфейсов дают возможность эффективнее наращивать и монетизировать трафик.

На заметку. При оформлении публикации кнопки отображаются в нижней части текста и являются кликабельными.

URL-кнопки

Простой, но, в то же время, очень популярный тип, повсеместно используемый в Телеграме. Особенностью подобных кнопок является наличие гиперссылок, которые отображаются рядом с иконкой. Читатель, вместе с URL, видит предупреждение о том, что при нажатии он перейдет на сторонний ресурс.

Switch-кнопки

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

Callback-кнопки

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

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

Как добавлять кнопки в Телеграм-канале

Чтобы создать кнопку для своего канала в Телеграме, пользователю необходимо набраться терпения.

Ведь встроенный функционал Telegram не позволяет самостоятельно добавить интерфейс, который отвечает за перенаправление пользователей.

Первым делом необходимо подключить бота для своего аккаунта. Для этого можно воспользоваться @Controllerbot, который активируется через @BotFather путем нажатия на «Старт» и обозначением команды /newbot.

Далее хозяин канала должен действовать в соответствии с алгоритмом:

Если все сделано верно, на экране высветится сообщение об успешной активации бота. Далее пользоваться интерфейсом можно с выбора пункта «Начать» и указания общедоступного текста. Робот сам предложит нужный вид кнопки среди рассмотренных ранее.

Источник

Keyboa: клавиатуры на максималках для ботов в Telegram

Как сделать кнопки в телеграмм боте

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

Статья рассчитана на тех, кто знает основы Telegram Bot API и хотя бы немного знаком с фреймворком pyTelegramBotAPI.

Модуль требует > Python 3.5 и ставится через pip:

pip install keyboa

Предположим, что сам бот у нас уже настроен:

Создаём клавиатуру

Предположим, нам нужно отправить пользователю на выбор список фруктов.

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

Отправим сообщение пользователю:

Как сделать кнопки в телеграмм боте

Распределяем кнопки по рядам

Разместить несколько кнопок в ряд можно любым из трёх способов.

Указать количество кнопок в ряду

Создадим клавиатуру и отправим обновлённое сообщение:

Как сделать кнопки в телеграмм боте

Использовать автоподбор

Распределить кнопки вручную

Как сделать кнопки в телеграмм боте

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

Управляем содержимым callback

Порой необходимо записать в callback_data дополнительные данные, например, идентификатор или другие свойства элемента. Чтобы задать кнопкам уникальные callback_data с требуемой информацией воспользуемся списком словарей или списком кортежей.

В этом случае ключ каждого словаря станет текстом кнопки, а его значение пойдет в callback_data. Для кортежей это будут нулевой и первый элементы соответственно. И поскольку мы явно указываем, что добавить в callback_data, параметр copy_text_to_callback больше не нужен.

Теперь, после нажатия пользователем одной из кнопок, мы получим в ответ не название фрукта, а его id номер, записанный в callback_data.

Этого достаточно, если мы используем числа только для обозначения фруктовых id. А если нужно принимать разные числовые параметры, например вес или цену? Как определить, к чему относится полученное число?

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

Теперь callback_data каждой кнопки будет выглядеть так:

Объединение нескольких клавиатур в одну

Как сделать кнопки в телеграмм боте

В этой статье мы кратко рассмотрели создание клавиатур для ботов в Telegram с помощью Keyboa. Больше информации и описание остальных параметров можно найти на странице проекта в Github.

Буду рад вашим отзывам, идеям и конструктивной критике по развитию проекта.

Источник

Урок 5. Клавиатуры и кнопки

В сегодняшнем уроке мы разберём шаблоны сообщений и инлайн-клавиатуры и научимся применять встроенные в aiogram методы для составления сложных клавиатур.

Весь код, использованный в уроке, как обычно доступен на GitHub

Для начала стоит понять, в чем основное различие ReplyKeyboardMarkup и InlineKeyboardMarkup :

ReplyKeyboardMarkup — это шаблоны сообщений. К примеру, ваш бот задаёт пользователю вопрос и предлагает варианты ответа. Пользователь может самостоятельно напечатать ответ, либо нажать на готовую кнопку. Такая клавиатура показывается вместо основной и не привязана ни к какому сообщению. В кнопки такой клавиатуры нельзя заложить никакой информации, нельзя запрограммировать для неё подобный если пользователь нажимает кнопку с текстом «abc» отправить текст «qwerty» алгоритм, отправлено будет только то, что написано на кнопке (есть два исключения, о которых ниже).

InlineKeyboardMarkup — это уже настоящая кастомная клавиатура. С её помощью мы можем выполнять более сложные действия. Она привязывается к сообщению, с которым была отправлена. В кнопки можно заложить любой текст размером от 1 до 64 байт (будьте осторожны, недобросовестные клиенты позволяют изменять эти данные). Инлайн кнопки позволяют скрыть в себе внутреннюю телеграм ссылку, ссылку на внешний ресурс, а также шорткат для инлайн запроса (об инлайн режиме в одном из следующих уроков).

Переходим к коду

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

В первую очередь импортируем необходимые нам модули и создаём первую клавиатуру:

Создаём обработчик, который будет отправлять нам сообщение и наш шаблон (напомню, что отправить отдельно клавиатуру никак нельзя, она является параметром к сообщению).

Запускаем и проверяем:

Как сделать кнопки в телеграмм боте

Мы передали параметр в инициализатор и следом сразу добавили уже существующую кнопку. Отправляем новую версию клавиатуры:

Как сделать кнопки в телеграмм боте

Очевидно, так как у нас нет обработчика обычных сообщений, текст, отправляемый нажатием на эту кнопку, остаётся без ответа. При желании можно добавить функцию эхо из первого урока. А что ещё можно было заметить при использовании этой кнопки? Что она остаётся всё там же, даже если мы после нажатия хотели бы вернуться к привычной клавиатуре. Да, нажать одну кнопку, чтобы переключиться, не сложно. Но если клавиатура в принципе не подразумевает повторного нажатия прямо сейчас? И для этого тоже есть решение:

Эти параметры можно комбинировать. Вследствие чего мы получили маленькую клавиатуру, которая скрывается после одной отправки. Но пользователь может снова её открыть нажатием на соответствующую кнопку в поле ввода.

Как сделать кнопки в телеграмм боте

Добавляем больше кнопок

Отправляем все готовые кнопки и смотрим на результат:

Как сделать кнопки в телеграмм боте

Как сделать кнопки в телеграмм боте

Как сделать кнопки в телеграмм боте

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

И последнее по этому виду клавиатур. ReplyKeyboardMarkup позволяет запросить у пользователя его контакт или локацию. Это те самые два исключения из правила, когда при нажатии кнопки будет отправлено не то, что написано на ней. Их можно отправлять как по одной, так и в составе более сложной клавиатуры. Добавим обе кнопки и посмотрим, что будет (обращу внимание читателя на то, что нельзя одной кнопкой запросить сразу и то и то):

При нажатии на каждую из этих кнопок клиент (приложение Телеграм) спросит, уверены ли вы, что хотите поделиться с ботом этими данными и при утвердительном ответе отправит их.

Как сделать кнопки в телеграмм боте

Как сделать кнопки в телеграмм боте

Как сделать кнопки в телеграмм боте

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

Как сделать кнопки в телеграмм боте

Получив сообщение с такой клавиатурой, клиент уберёт шаблоны полностью.

Инлайн клавиатуры

Теперь перейдем к инлайн клавиатурам. Они имеют больше параметров, поэтому позволяют нам делать больше разных вещей. Самое популярное использование — как кнопка, являющаяся шорткатом для какого-то действия. То есть «если пользователь нажал кнопку X, сделать Y». И под Y можно понимать вообще что угодно, так как это уже не ограничивается даже API. Рассмотрим наглядно, для этого передадим в инициализатор значение callback_data :

Здесь мы делаем проверку прямо в хэндлере. Аргумент func ожидает функцию, которая принимает один параметр (туда передаётся апдейт), и хэндлер срабатывает, если возвращается истина. Этот аргумент можно использовать и в других хэндлерах, мы уже использовали его в уроке по FSM.

Внутри мы можем делать вообще что угодно, так как работаем с обычным питоном. Подача корма для кошки? Управление светом? Пределом является только ваша фантазия.

Как сделать кнопки в телеграмм боте

В этот раз установим ширину клавиатуры 2 и посмотрим, что будет.
Ну и так как методы добавления новых элементов мы уже разобрали, добавим сразу все доступные кнопки и отправим получившуюся клавиатуру, не забыв добавить хэндлер кнопок:

Как сделать кнопки в телеграмм боте

Пройдёмся по строчкам по порядку, чтобы не осталось вопросов:

Так как параметр клавиатуры row_width равен двум, то кнопки автоматически расставились соответствующе. Рассмотрим реакцию на кнопки по порядку: При нажатии первой срабатывает наш первый колбек, так как не важно, в какую клавиатуру добавлена кнопка, важно, какая у неё callback_data ☝️. Поэтому добавлять инлайн кнопку можно сколько угодно раз в любые инлайн клавиатуры.

И во всех случаях шлем сообщение пользователю:

Как сделать кнопки в телеграмм боте

На последок не забываем добавить обработку команы /help и запускаем:

Вот и всё!

В этом уроке мы разобрали как работать с клавиатурами в Телеграм

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *