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

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

19 097 просмотров

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

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

обычные кнопки

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

keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=False, one_time_keyboard=True)

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

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

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

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

Telegram Bot на Python | Часть 3. Кнопки (клавиатура) с командами в чате с ботом

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

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

stop = types.KeyboardButton(text=’отмена ❌’)

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

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

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

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

Еще по теме:  Полезные боты Телеграмм инстаграм

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

После создания кнопки ее нужно добавить в клавиатуру вот так:

keyboard.add(stop)

И далее дать эту клавиатуру пользователю с сообщением:

bot.send_message(message.chat.id, ‘Клавиатура с одной кнопкой, reply_markup=keyboard)

  • Отправить можно только одну клавиатуру за раз
  • Это актуально для всех типов клавиатур.

Inline-кнопки вы видите под сообщением.

Источник: vc.ru

Создание кнопок для телеграмм бота с использованием библиотеки pyTelegramBotAPI

Доброго времени суток. Телеграмм — божественный месседж скаченный у каждого на телефонах/компьютерах и не только. После прочтение этой статьи вы научитесь создавать кнопки для вашего телеграмм бота. Желаю удачи, в прочтении!)

Предупреждение

Забыл предупредить, в этой статье не будет сказано о создание бота, получение токена через BotFather. Для этого прочитайте документацию библиотеки или посмотрите ролики на эту тему в ютубе(Для удобство ссылку на документацию на русском языке библиотеки pyTelegramBotAPI оставлю в описании). И так, вернемся к теме.

Как сделать меню для Телеграм Бота на Python

Создание url кнопки

Url кнопки используются, когда хотим создать кнопку при клике которой, пользователь переходил на сайт. Пример:

нажима на «перейти», телеграмм перекинет его на сайт, который вы оставили при создание url кнопки, но как же собственно создать? Легко!

при создание url-кнопки используется тип InlineKeyboardMarkup, в который мы добавляем кнопку и с помощью reply_markup=markup выводим это в чат(обязательно не забудьте указать это, иначе ваша кнопка просто не будете отображаться).

Создание Reply кнопки

Я не знаю как корректно называются кнопки использующие тип ReplyKeyboardMarkup, но я много практиковался в их создание и покажу вам, как это делается. Вот пример Reply кнопок:

Еще по теме:  Как в Телеграмме писать от лица группы в чате

Вот весь код самого бота:

И так. Что бы создать Replay кнопку, нужно создать переменную, я назвал ее markup(9 строчка кода) в нее помещаем types.ReplyKeyboardMarkup(resize_keyboard=True). Resize_keybord=True выполняет функцию адаптации(я всегда указываю и вам советую тоже).После этого мы создаем переменную уже с самими кнопками и их текстом(10, 11 строчка) и затем добавляем эти переменные коммандой markup.add(__имя ваших переменных__). Коммандой bot.send_message(message.chat.id, text=»Привет, ! Я тестовый бот для твоей статьи для habr.com».format(message.from_user), reply_markup=markup) и обязательно не забывайте добавлять reply_markup=markup, иначе просто кнопки не будут отображаться.

Заключение

Большое спасибо вам за прочтение. Не судите строго, это моя первая статья, рассказал я скорее всего не очень, и только поверхностно. Если хотите углубиться в эту тему, почитайте документацию, кстати, вот документация по pyTelegramBotAPI на русском:

  • https://github-com.translate.goog/eternnoir/pyTelegramBotAPI?_x_tr_sl=auto_x_tr_hl=ruhttps://habr.com/ru/sandbox/163347/» target=»_blank»]habr.com[/mask_link]

    Чат-боты в Telegram на Python. Часть 2. Создаём и настраиваем меню

    Продолжаем писать чат-бота для Telegram — добавляем кнопки и интерактив.

    Иллюстрация: Катя Павловская для Skillbox Media

    Антон Яценко

    Антон Яценко
    Изучает Python, его библиотеки и занимается анализом данных. Любит путешествовать в горах.

    В первой части урока по чат-ботам для Telegram мы создали на Python эхо-бота с помощью библиотеки aiogram. Сам эхо-бот работает просто, а его функция очевидна из названия: в ответ на сообщение пользователя он присылает тот же текст. Если вы ещё не читали первую часть, начните с неё.

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

    Виды клавиатур

    Библиотека aiogram позволяет создать на Python клавиатуры двух видов, отличающиеся друг от друга расположением кнопок:

    • Reply-кнопки для шаблонных ответов, которые закрепляются вместо основной клавиатуры на экране. Часто используются в чат-ботах как меню. Создаются с помощью метода ReplyKeyboardMarkup.
    • Инлайн-кнопки, связанные с сообщениями в чате. При этом пользователь видит и основную клавиатуру. Создаются с помощью метода InlineKeyboardMarkup.

    Создание меню

    Наш эхо-бот для Telegram сейчас позволяет только отправлять текстовые сообщения и получать их обратно. Давайте проапгрейдим его и добавим кнопки с готовыми сообщениями, которые не надо вводить самому. Это будут reply-кнопки.

    Нам понадобится класс ReplyKeyboardMarkup — для начала импортируем его и дополнительные необходимые классы:

    Если нажать на любую кнопку, текст кнопки отправится в чат, а Telegram-бот пришлёт в ответ эту же фразу:

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

    Инлайн-кнопки на aiogram

    Создадим на Python для нашего бота инлайн-кнопки со ссылками на Skillbox Media и курсы по программированию. Для этого вернёмся к разделу с импортами в коде и добавим ещё одну строку, чтобы можно было использовать необходимые классы:

    Всё получилось. Теперь инлайн-клавиатура появляется при отправке команды /ссылки в бот.

    Заключение

    В нашем эхо-боте для Telegram появилось два вида меню, написанных на Python: reply-кнопки для быстрых сообщений и инлайн-кнопки для перехода на блог и сайт Skillbox. Для создания сложных ботов — например, ботов онлайн-магазинов — можно самостоятельно изучить документацию к библиотеке aiogram: попробовать новые классы, методы и объекты.

    • С# для новичков: развеиваем мифы и пишем простого чат-бота
    • Тест. Какой язык создадите вы — Java или Python?
    • Что можно сделать на JavaScript и что нельзя

    Источник: skillbox.ru

Рейтинг
( Пока оценок нет )
Загрузка ...