- PVSM.RU - https://www.pvsm.ru -
Добрый день уважаемые читатели, давайте рассмотрим, какие основные типы встроенных кнопок предлагают чат-боты telegram и в чем их особенности. Статья будет полезна всем, кто хочет разобраться в возможностях взаимодействия с пользователями telegram в версии bot API 2.0.
Для обзора возможностей нам понадобится установить 3 целых 2 десятых Python`a и пару ложек pyTelegramBotAPI [1]. Особенности настройки и регистрации чат-бота мы рассматривать не будем, т.к. есть множество статей на эту тему.
И так, что же такое встроенные кнопки(клавиатура) в мессенджере Telegram? Это кнопки которые выводятся во внутренней области чата и привязываются к конкретному сообщению. Они жестко связаны с сообщением(если удалить сообщение, внутренние кнопки так же удаляются вместе с ним.), и дают возможность динамически видоизменять его.
В данный момент есть три типа встроенных кнопок:
Для создания кнопки используется тип InlineKeyboardMarkup [5], давайте создадим кнопку «Наш сайт»:
markup = types.InlineKeyboardMarkup()
btn_my_site= types.InlineKeyboardButton(text='Наш сайт', url='https://habrahabr.ru')
markup.add(btn_my_site)
bot.send_message(chat_id, "Нажми на кнопку и перейди на наш сайт.", reply_markup = markup)
Тут название говорит само за себя, это тип кнопок предназначен для перенаправления пользователя по ссылке, с соответствующим предупреждением. Кнопка имеет соответствующий ярлычок в правом верхнем углу, чтобы дать понять пользователю, что это ссылка.
Этот тип кнопок предназначен для перенаправления пользователя в какой либо чат, с активацией встроенного режима общения с ботом. Данный режим можно активировать вручную, просто находясь, например, в чате со своей бабушкой. Вводим: "@название бота", и, по смайлику подобрать клевый стикер:
Шаг 1:
Нажимаем на кнопку.
Шаг 2:
Выбираем чат.
Шаг 3:
Активировался встроенные режим, можем по смайлику подобрать стикер.
Ну и наконец самое интересное — это кнопки с обратной связью: позволяют динамически обновлять сообщение/встроенные кнопки (не засоряя при этом ленту), а так же отображать уведомление в верху чат-бота или модальном окне.
Например, их можно использовать для просмотра длинного сообщения, аналогично пагинации страниц на сайтах, или например сделать календарь. Я не стану изобретать велосипед, а через поиск по GitHub, найду готовую библиотеку calendar-telegram [6]. Выполнив указанные инструкции, получаем готовый календарь, который можно динамически изменять по нажатию на соответствующие кнопки:
Так же можно добавить уведомление по нажатию на дату, для этого достаточно указать сообщение в ответе:
bot.answer_callback_query(call.id, text="Дата выбрана")
(Пример в десктопной версии)
(Пример в мобильной версии)
Если изменить show_alert на True, то мы получим модальное окно:
bot.answer_callback_query(call.id, show_alert=True, text="Дата выбрана")
По последним данным, в нашумевшем мессенджере Telegram регистрируются больше 600к пользователей ежедневно. Именно поэтому важно подхватить тренд и разобраться с его основными особенностями, т.к. различные методы взаимодействия с ботами существенно облегчает жизнь разработчиков и пользователей.
Cпасибо за Ваш интерес к данной теме.
Автор: icmizer
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/262396
Ссылки в тексте:
[1] pyTelegramBotAPI: https://github.com/eternnoir/pyTelegramBotAPI
[2] URL-кнопки: https://core.telegram.org/bots/2-0-intro#url-buttons
[3] Callback-кнопки: https://core.telegram.org/bots/2-0-intro#callback-buttons
[4] Switch-кнопки: https://core.telegram.org/bots/2-0-intro#switch-to-inline-buttons
[5] InlineKeyboardMarkup: https://core.telegram.org/bots/api#inlinekeyboardmarkup
[6] calendar-telegram: https://github.com/unmonoqueteclea/calendar-telegram
[7] Источник: https://habrahabr.ru/post/335886/
Нажмите здесь для печати.