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

от admin

Bot API v2: Кнопки и редактирование сообщений

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

Новые возможности

Начнём с двух важных изменений:

  1. Каждая кнопка, будь то обычная или инлайн, это теперь самостоятельный объект KeyboardButton или InlineKeyboardButton , не забудьте обновить своих ботов!
  2. В Inline-режиме все текстовые поля теперь представлены отдельными объектами InputMessageContent , которые, в свою очередь могут быть аж 4-х типов (подробности тут).

URL-кнопки

Итак, инлайн-кнопки. Что это такое? Это специальные объекты, которые “цепляются” к конкретным сообщениям и распространяют своё действие, в общем случае, только на них. Делятся такие кнопки на три типа: URL-кнопки, Callback-кнопки и Switch-кнопки. Самыми простыми являются кнопки-ссылки (URL). Как видно из названия, их цель — просто перекидывать пользователей по определенным веб-адресам. Давайте сразу напишем обработчик, который будет на любое сообщение отвечать каким-либо текстом и предложением перейти, например, на Яндекс.

Инлайн-клавиатура представляет собой объект InlineKeyboardMarkup , а каждая инлайн-кнопка – это объект InlineKeyboardButton . Чтобы получилась URL-кнопка, нужно указать значения параметров text (текст на кнопке) и url (валидный веб-адрес). В результате бот пришлет нам такое сообщение (см. рис.). В целях обеспечения безопасности, перед переходом по URL-кнопкам появляется всплывающее окно, в котором видна ссылка целиком.

Callback-кнопки и редактирование сообщений

Прежде, чем мы перейдем к другим кнопкам, давайте познакомимся с функциями редактирования сообщений, коих тоже три: editMessageText (редактирование текста), editMessageCaption (редактирование подписи к медиа) и editMessageReplyMarkup (редактирование инлайн-клавиатуры). В рамках этого урока рассмотрим только первую функцию, остальные работают аналогично и предлагаются для самостоятельного изучения.
Чтобы отредактировать сообщение, нам надо знать, про какое именно идёт речь. В случае, если оно было отправлено самим ботом, идентификаторами служит связка chat_id + message_id . Но если сообщение было отправлено в инлайн-режиме, то ориентироваться надо по параметру inline_message_id .

И вот теперь вернемся к нашим баранам кнопкам. На очереди – Callback. Это, на мой взгляд, самая крутая фича нового обновления. Колбэк-кнопки позволяют выполнять произвольные действия по их нажатию. Всё зависит от того, какие параметры каждая кнопка в себе несёт. Соответственно, все нажатия будут приводить к отправке боту объекта CallbackQuery , содержащему поле data , в котором написана некоторая строка, заложенная в кнопку, а также либо объект Message , если сообщение отправлено ботом в обычном режиме, либо поле inline_message_id , если сообщение отправлено в инлайн-режиме.

Приведу пример, после которого все вопросы должны отпасть: пусть, например, если сообщение отправлено ботом в обычном режиме, то нажатие на кнопку заменит текст сообщения на “Пыщь”, если в инлайн – то “Бдыщь”. При этом в обоих случаях значение callback_data будет равно test . Что для этого нужно сделать: во-первых, написать простейший хэндлер для всех входящих сообщений, во-вторых, написать простейший хэндлер для инлайн-сообщений, в-третьих, написать простейший хэндлер для колбэка, который определит, из какого режима пришло сообщение.

Запускаем бота, отправляем инлайн-сообщение, которое, в свою очередь, вызовет обычное:

Нажмем на обе кнопки, результат правильный:

После проверки

Таким образом, callback-кнопки – это очень мощный инструмент для взаимодействия пользователей с ботом, а редактирование сообщений дополнительно помогает в этом. Более того, нажатие на колбэк-кнопку может дополнительно тригернуть либо уведомление в верхней части экрана, либо всплывающее окно. Покажу первый вариант. Пускай помимо изменения сообщения на “Пыщь”, аналогичное слово показывается уведомлением. Для этого перепишем первое if-условие в хендлере колбэков:

Результат – на скриншоте. Попробуйте, кстати, изменить аргумент show_alert на True и посмотрите, что получится.

Всплывающее уведомление

Switch-кнопки

Наконец, остался последний тип кнопок — Switch (переключатель). Они нужны, чаще всего, для обучения пользователей работе с ботом в инлайн-режиме. Чтобы активировать сделать кнопку такого типа, нужно указать аргумент switch_inline_query либо пустой, либо с каким-либо текстом. В последнем случае этот текст будет сразу подставлен в поле ввода, например, для показа демонстрации инлайна. Как вообще работает такая кнопка? При нажатии на неё Telegram предложит выбрать чат, после чего подставит в поле ввода ник вашего бота и (если есть), текст, указанный вами в аргументе switch_inline_query . Давайте попробуем так сделать. Добавим кнопку, которая будет перенаправлять пользователя в какой-либо чат и предлагать в инлайн-режиме запрос “Telegram”. Код всего хендлера выглядит вот так:

Теперь, если мы нажмем на кнопку и выберем чат, вот что получится:

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

Кнопки в телеграм-ботах

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

Кнопки в телеграм бывают двух видов — inline и обычные (reply).

Обычные вы видите вместо клавиатуры, все, что они делают, как правило, — отправляют текстовое сообщение боту.

Но, перед тем, как сделать кнопку, нужно создать клавиатуру. Для обычных кнопок она одна, для inline другая, вот обычная:

resize_keyboard: bool — необязательный | будет ли клавиатура растягиваться (по умолчанию: без значения)

Читать:
Чем отличается telegram webk от webz

one_time_keyboard: bool — необязательный \ разовая ли клавиатура (по умолчанию: без значения)

selective: bool — необязательный | кому показывать (по умолчанию: без значения)

row_width: int — обязательный | количество столбцов кнопок (по умолчанию: 3)

input_field_placeholder: str — необязательный | заменяет текст-заглушку в поле ввода (по умолчанию: без значения)

Создав клавиатуру, создадим к ней кнопку:

text: str — обязательный | текст кнопки. Если указан только он, то кнопка будет просто отправлять текст при нажатии.

request_contact: bool — необязательный | если указан как true то пользователь при нажатии отправит свой контакт. Доступен только в приватных чатах.

request_location: bool — необязательный | если указан как true, то пользователь при нажатии отправит свою локацию. Доступен только в приватных чатах.

request_poll: bool — необязательный | если указан как true, то пользователь при нажатии отправит свою локацию. Доступен только в приватных чатах.

web_app: WebAppInfo — необязательный | если указан как true, то при нажатии откроется страница указанного веб-приложения — про это есть отдельная статья. Доступен только в приватных чатах.

Как сделать синюю кнопку в Телеграме с ссылкой? Инструкция.

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

  1. В Телеграме найти бота под названием @controllerbot
  2. Запустить его.
  3. ControllerBot отправит в ответ команды. Нужно выбрать пункт /addchannel – добавить канал.
  4. Затем ControllerBot попросит добавить нового бота в администраторы вашего канала. Это надо сделать. На этом этапе вы можете поменять бота на любого другого.
  5. Далее надо переслать любое сообщение из вашего канала. Также можно отправить username или ID канала.
  6. Потом ControllerBot переправит вас к вашему же боту.

Как сделать синюю кнопку в Телеграме с ссылкой

2 этап

  1. Запустить уже ваш бот.
  2. Нажать на Создать пост.Как сделать синюю кнопку в Телеграме с ссылкой
  3. Выбрать канал, в котором вы хотите создать пост.
  4. Набрать нужный текст и нажать на синюю кнопку отправки. Пока пост не опубликован на канале, а только подготовлен. Мы можем его немного видоизменить.
  5. Выбрать пункт Добавить URL-кнопку.Как сделать синюю кнопку в Телеграме с ссылкой
  6. Бот попросит прислать ему нужную ссылку в формате Кнопка 1 – адрес сайта и тд. Слово “кнопка” можно заменить на любое другое.Как сделать синюю кнопку в Телеграме с ссылкой
  7. Если все правильно, то бот напишет фразу – URL-кнопки сохранены. Продолжайте отправлять сообщения.
  8. Затем бот напишет, что сообщение готово к публикации. Осталось только нажать Опубликовать.
  9. Внимание! Сообщение в вашем Телеграм канале будет выглядеть в формате – текст + ссылка под текстом. Чтобы сделать голубую кнопку, надо нажать правой кнопкой мыши по сообщению и выбрать Закрепить.
  10. Как сделать синюю кнопку в Телеграме с ссылкой
  11. Готово! Синяя кнопка появилась в Телеграм-канале.

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

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

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

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

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

Телеграм

URL-кнопки

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

Создание URL

Switch-кнопки

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

Switch-кнопки

Callback-кнопки

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

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

Callback-кнопки

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

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

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

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

Котроллер бот

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

  • Пропишите название бота и нажмите «Отправить».
  • Придумайте логин через нижнее подчеркивание (например, newschool_bot). Важно подобрать такое имя, чтобы оно не было занято другими пользователями. Поэтому придется перебрать несколько вариантов.
  • Тапните по иконке «Отправить».

Название бота

  • Перенаправьте сообщение от @BotFather роботу @Controllerbot. Для этого кликните на пост ПКМ и выберете значение «Переслать сообщение».
  • Добавьте полученного бота в администраторы канала, нажав ПКМ по имени робота и выбрав заголовок «Копировать имя пользователя». Далее его название указывается в ссылке «Администраторов:X».
  • Нажмите «Добавить администратора», а в поле для ввода текста выберете пункт «Вставить».

Админ панель

  • Сохраните изменения.
  • Откройте канал и напишите любое сообщение.
  • Перешлите его в @Controllerbot.

Пересланное сообщение контроллерБот

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

Похожие статьи