Как создать бота в телеграмме на python
Перейти к содержимому

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

  • автор:

Питоном по телеграму! Пишем пять простых Telegram-ботов на Python

В этой статье мы реали­зуем прос­той, но край­не полез­ный про­ект на Python — бота для Telegram. Боты — это неболь­шие скрип­ты, которые могут вза­имо­дей­ство­вать с API, что­бы получать сооб­щения от поль­зовате­ля и отправ­лять информа­цию в раз­ные чаты и каналы.

Python для новичков

Ес­ли ты сов­сем не ори­енти­руешь­ся в Python, то отличным началом будет проч­тение трех ввод­ных ста­тей, которые я пуб­ликовал в «Хакере» этим летом, либо посеще­ние кур­са «Python для нович­ков», который я нач­ну вес­ти для читате­лей «Хакера» уже сов­сем ско­ро — 30 нояб­ря.

  • Python с абсо­лют­ного нуля. Учим­ся кодить без скуч­ных кни­жек
  • Python с абсо­лют­ного нуля. Учим­ся работать со стро­ками, фай­лами и интерне­том
  • Python с абсо­лют­ного нуля. Работа­ем с ОС, изу­чаем регуляр­ные выраже­ния и фун­кции

Что­бы соз­дать бота, нам нуж­но дать ему наз­вание, адрес и получить токен — стро­ку, которая будет однознач­но иден­тифици­ровать нашего бота для сер­веров Telegram. Зай­дем в Telegram под сво­им акка­унтом и откро­ем «отца всех ботов», BotFather.

Жмем кноп­ку «Запус­тить» (или отпра­вим / start ), в ответ BotFather приш­лет нам спи­сок дос­тупных команд:

  • / newbot — соз­дать нового бота;
  • / mybots — редак­тировать ваших ботов;
  • / setname — сме­нить имя бота;
  • / setdescription — изме­нить опи­сание бота;
  • / setabouttext — изме­нить информа­цию о боте;
  • / setuserpic — изме­нить фото ава­тар­ки бота;
  • / setcommands — изме­нить спи­сок команд бота;
  • / deletebot — уда­лить бота.

От­пра­вим бате‑боту коман­ду / newbot , что­бы соз­дать нового бота. В ответ он поп­росит ввес­ти имя будуще­го бота, его мож­но писать на рус­ском. Пос­ле вво­да име­ни нуж­но будет отпра­вить адрес бота, при­чем он дол­жен закан­чивать­ся на сло­во bot. Нап­ример, xakepbot или xakep_bot . Если адрес будет уже кем‑то занят, BotFather нач­нет изви­нять­ся и про­сить при­думать что‑нибудь дру­гое.

Ког­да мы наконец най­дем сво­бод­ный и кра­сивый адрес для нашего бота, в ответ получим сооб­щение, в котором пос­ле фра­зы Use this token to access the HTTP API будет написа­на стро­ка из букв и цифр — это и есть необ­ходимый нам токен. Сох­раним ее где‑нибудь на сво­ем компь­юте­ре, что­бы потом исполь­зовать в скрип­те бота.

Для вза­имо­дей­ствия с Telegram API есть нес­коль­ко готовых модулей. Самый прос­той из них — Telebot. Что­бы уста­новить его, набери

pip install pytelegrambotapi

В Linux, воз­можно, понадо­бит­ся написать pip3 вмес­то pip , что­бы ука­зать, что мы хотим работать с треть­ей вер­сией Python.

Эхо-бот

Для начала реали­зуем так называ­емо­го эхо‑бота. Он будет получать от поль­зовате­ля тек­сто­вое сооб­щение и воз­вра­щать его.

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

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Как создать бота в Telegram: большая инструкция

Как создать бота в Telegram: большая инструкция

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

Освойте профессию
«Python-разработчик»

Что такое Telegram-бот?

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

Python-разработчик
Освойте Python, самый популярный язык программирования
3 383 ₽/мес 6 150 ₽/мес

dffsdd (3)

Какими бывают боты в Telegram

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

Боты для автоматизации задач

как создать бота в телеграмме

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

Боты для продвижения и продаж

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

как создать своего бота в телеграмме как сделать бота в телеграммеЧатбот поможет в форме непринужденной беседы подвести клиента к покупке вашего продукта. Источник

Боты для общения и развлечения

создание бота телеграмм

Telegram-боты нужны не только для того, чтобы продавать. Они также могут помочь выбрать кино на вечер, предложить забавный тест или сгенерировать мем. Например, студенты Skillfactory разработали для Московского зоопарка Telegram-бот, который имитирует общение с манулом Тимофеем и предлагает поучаствовать в викторине.

Конструкторы для настройки ботов

Для создания простых ботов можно использовать сервисы-конструкторы. С их помощью получится реализовать наиболее частые сценарии использования: ответы на вопросы, выдачу информации по запросу и обработку данных пользователя. Такие сервисы не требуют знания программирования, их можно освоить за несколько часов. Популярные конструкторы для создания ботов Telegram: Manybot — сервис для создания ботов с помощью сообщений в чате. Подойдет для самых простых сценариев использования. У Manybot есть встроенная реклама и нет возможности отключить ее с помощью подписки; botmother — редактор ботов, который умеет работать не только с Telegram, но и с другими популярными мессенджерами. Есть возможность обрабатывать медиа, файлы и обращаться к сторонним сервисам. PuzzleBot — мощный конструктор, позволяющий создать бота практически любой сложности и без единой строчки кода. При этом важно понимать основы программирования: переменные, циклы и условия. Есть премиальная версия по подписке.

Станьте разработчиком на Python и решайте самые разные задачи: от написания кода до автоматизации процессов

Какие технологии нужны, чтобы создать чат-бота в Telegram с нуля?

Если от бота нужны нестандартные сценарии использования или в проекте важно полностью контролировать поведение и обработку данных, то без программирования не обойтись. У Telegram открытое API с хорошей документацией, поэтому ботов можно разрабатывать практически на любом языке программирования, но удобнее использовать для этого уже готовые библиотеки. Разработчики Telegram активно развивают мессенджер, поэтому от библиотеки важно, чтобы она обновлялась так же часто и поддерживала все новшества сервиса. Ботов чаще всего пишут на Python из-за простоты и удобства этого языка. Для Python существуют следующие библиотеки для ботов Telegram: aiogram — комплексная библиотека с отличной документацией, поддержкой и активным сообществом. Есть русскоязычное сообщество разработчиков, которое поможет с трудностями и ответит на вопросы. Библиотека aiogram поддерживает асинхронность, работу с машиной состояний и рассчитана на разработку сложных ботов с большим количеством ежедневных пользователей. Сейчас у aiogram две активные версии, и лучше сразу выбирать версию 3.0, которая пока находится в бете, но работает стабильно. Библиотека подразумевает глубокие знания Python и опыт в программировании, поэтому может быть сложной для начинающих; telebot (pyTelegramBotAPI) — библиотека для простых ботов с небольшим количеством пользователей, поддерживающая работу с основными методами Telegram API. С telebot сложнее организовать асинхронность и управлять большой нагрузкой, но новичкам в разы легче и приятнее с ней работать.

Читайте также Полезные библиотеки для Python: чем пользуются разработчики

В статье мы будем использовать библиотеку telebot и писать код на Python, поэтому нам понадобится редактор кода. Сейчас разработчики в основном используют один из двух редакторов: Visual Studio Code — бесплатный редактор кода от компании Microsoft с задатками полноценной среды разработки. VS Code можно использовать практически с любыми языками программирования и технологиями. Для этого компания предусмотрела маркетплейс плагинов, расширяющих возможности редактора. VS Code полностью бесплатный и доступен для Windows, macOS и Linux. PyCharm — полноценная среда разработки на Python от компании JetBrains. Более тяжеловесная, чем VS Code, и включает в себя дополнительные инструменты для профессиональной работы над большими проектами. Есть как бесплатная версия, так и продвинутая по подписке. Для разработки даже самых сложных ботов хватит возможностей бесплатной версии PyCharm.

Как создать своего бота в Telegram

Разработка Telegram-бота начинается с его создания в мессенджере. Для этого команда сервиса предусмотрела специального бота BotFather, через которого осуществляется управление другими ботами пользователя. Важно отметить, что BotFather доступен только под этим именем и оснащен синей галочкой верификации. Найти его можно через строку поиска или по ссылке. BotFather для создания ботов в ТелеграммПосле перехода в BotFather нажимаем на кнопку «Начать». В чат придет сообщение со списком всех команд, доступных в боте. Так как мы создаем нового бота, то нам нужна команда `/newbot`. Ее можно выбрать из списка или ввести с клавиатуры и отправить в чат. Начало создания бота в BotFatherПосле этого BotFather попросит ввести название бота, которое пользователи будут видеть в его профиле и списке своих чатов. Оно может быть любым, но должно передавать суть бота и его возможности. Мы разрабатываем бота для комплиментов, так его и назовем — «Комплименты». разработка бота для комплиментов в BotFatherТеперь нашему боту надо задать имя пользователя, по которому его можно будет найти в Telegram. В этом случае уже есть несколько правил оформления:

  • имя бота должно заканчиваться словом `bot`: к примеру, `SuperBot` или `super_bot`. Это обязательное требование Telegram, чтобы пользователи могли отличать обычные профили от ботов. Исключение делается только для внутреннего BotFather, имя которого начинается с ключевого слова, а не заканчивается им;
  • имя бота должно быть уникальным, а учитывая, что многие создают ботов ради эксперимента и не удаляют их, то найти подходящий свободный вариант может быть проблематично.

Исходя из всего этого, подбираем звучное имя, состоящее из ключевых слов, которые бы точно описывали его суть. Для экспериментов можно использовать просто набор символов. В нашем случае имя `compliment_bot` уже было занято, поэтому использовали `super_compliment_bot`. Получилось слишком длинно, но отражает суть.

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

токен для вашего бота в BotFather

Оформление бота

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

оформление своего бота в телеграмм

Для этого опять откроем BotFather, введем команду `/mybots` и выберем из списка только что созданного бота. Перед нами откроется меню управления ботом.

меню управления ботом в BotFather

Коротко о каждом пункте меню:

API Token — можно узнать токен, если потеряли его. Также можно отозвать имеющийся токен и сгенерировать новый, если кто-то все же узнал его и перехватил на себя управление ботом;

Edit Bot — меню редактирования бота, в котором можно изменить имя, добавить описание, иконку, приветственное изображение и команды;

Bot Settings — тут можно выдавать боту права на взаимодействия с сообщениями в групповых чатах и каналах, добавлять кнопки и включить инлайн-режим;

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

Transfer Ownership — бот принадлежит пользователю, который его создал, но права на владение и управление можно передать с помощью этого пункта меню;

Delete Bot — если бот больше не нужен, то его можно удалить, освободив список свободных уникальных имен.

У нашего бота пока есть только название. Теперь зададим ему описание, которое будет видно в окне его профиля. Для этого в меню бота выбираем Edit Bot → Edit About и присылаем в чат короткое описание. После зададим расширенное описание, выводящееся в чате новым пользователям. Переходим в Edit Bot → Edit Description и присылаем текст.

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

  • формат файла должен быть jpg или png;
  • квадратное изображение не меньше 300×300px и не больше 1280×1280px. Лучше всего использовать изображения размером 500×500px;
  • изображение надо отправить BotFather в виде фото, а не файла.

Также боту можно задать изображение с описанием его возможностей. Его будут видеть новые пользователи при переходе в чат. Можно использовать картинки размером 640×360px или гифки 320×120px/640×360px. На таком изображении можно тезисно указать возможности бота и оставить QR-код с ссылкой на сайт компании или разработчика для пользователей, которые используют настольную версию Telegram.

Иконку бота можно задать, перейдя в Edit Bot → Edit Botpic, а изображение-описание — Edit Bot → Edit Description Picture. После настройки наш Telegram-бот выглядит так:

создаем иконку бота в настройках

Начинаем программировать

Теперь у нас есть готовый оформленный бот, который ничего не умеет. Если открыть и запустить бота командой `/start` или кнопкой, то ничего не произойдет. Поэтому надо его оживить и научить обрабатывать сообщения от пользователя. Наш бот будет присылать в чат случайный комплимент из собственной коллекции.

Сперва надо установить среду разработки. В этой статье будем использовать PyCharm от JetBrains. Скачать установочный файл можно с официального сайта разработчика. Скачать и установить Python можно с официального портала. Проверить установленную версию Python можно с помощью следующей команды:

проверка установленной версии Python

При создании бота мы будем в основном работать с библиотекой telebot. Поэтому ее надо установить. Заходим в PyCharm и создаем новый проект с названием `bot`. PyCharm создаст необходимое окружение, в котором мы установим библиотеку. Для этого надо открыть вкладку Terminal в редакторе кода и ввести команду `pip install pyTelegramBotAPI` для Windows или `pip3 install pyTelegramBotAPI` для macOS.

В папке проекта должен был автоматически появиться файл `main.py`. Если этого не произошло, то создаем его сами. Теперь научим нашего бота здороваться. Для этого в файле `main.py` импортируем `telebot`, создадим переменную `token` с нашим токеном и передадим его экземпляру бота.

import telebot # Импортируем telebot token = ('Ваш токен') bot = telebot.TeleBot(token)

Теперь создадим хендлер для обработки команды `/start`. Хендлер (Heandler) или обработчик — функция, которая вызывается в ответ на наступление определенного события. В случае с Telegram хендлер запускает функцию при получении сообщения.

В самом хендлере создадим функцию `start_message` с текстом сообщения, которым бот будет отвечать на полученную команду. Нам нужно бесконечное выполнение кода, чтобы бот работал всегда и был доступен в любое время суток. Поэтому завершим все строкой `bot.polling(none_stop=*True*, interval=0)`, которая будет запускать бесконечное выполнение.

import telebot # импортируем telebot # передаём значение переменной с кодом экземпляру бота token = ('Ваш токен') bot = telebot.TeleBot(token) # хендлер и функция для обработки команды /start @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, "Привет ✌️") # бесконечное выполнение кода bot.polling(none_stop=True, interval=0) Встроить код

Сейчас можно попробовать запустить код в PyCharm и открыть бота в Telegram. Если отправить ему команду `/start`, то он ответит сообщением, которое мы передали ему в коде. Бот работает, значит, можно наращивать его возможности.

запускаем код бота в PyCharm

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

Поэтому создадим в папке проекта файл `secrets.py` и в файле инициализируем словарь с ключом `BOT_API_TOKEN` и самим токеном в виде значения ключа.

secrets = Встроить код

Теперь вернемся к файлу `main.py`, импортируем словарь из файла `secrets.py` и сделаем так, чтобы токен подтягивался из файла, а не находился в коде.

import telebot # импортируем telebot from secrets import secrets # импортируем словарь с токеном из файла secrets.py # передаём значение переменной с кодом экземпляру бота token = secrets.get('BOT_API_TOKEN') bot = telebot.TeleBot(token) # хендлер и функция для обработки команды /start @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id, "Привет ✌️") # бесконечное выполнение кода bot.polling(none_stop=True, interval=0)

Снова запускаем код и проверяем. Бот продолжает отвечать на команду `/start`, но в его коде уже нет токена. Поэтому можно спокойно делиться файлом `main.py` и не бояться за безопасность.

Разработчики могут встраивать кнопки для удобного общения с Telegram-ботами. Воспользуемся этой возможностью и создадим несколько кнопок для автоматической отправки команд. Нам потребуется определение типов сообщений, поэтому для этого импортируем `types` из `telebot`. Часть с импортами в коде будет выглядеть так:

import telebot # импортируем telebot from secrets import secrets # импортируем словарь с токеном из файла secrets.py from telebot import types # для определения типов

Теперь перепишем хендлер для обработки команды `/start`. Он будет не только отправлять приветственное сообщение, но и инициализировать кнопки бота. В нашем боте две кнопки: «Старт» будет выводить краткую инструкцию по использованию бота, а «Комплимент» — присылать приятное сообщение из коллекции. Сами кнопки украсим эмодзи.

Вместе с этим заменим текст приветственного сообщения. Будем обращаться к пользователю по имени. Мы не можем знать имен всех пользователей, но их знает Telegram, поэтому спросим у него с помощью конструкции « . Весь код хендлера выглядит так:

# хендлер и функция для обработки команды /start @bot.message_handler(commands=['start']) def start_message(message): markup = types.ReplyKeyboardMarkup(resize_keyboard=True) start_button = types.KeyboardButton("�� Старт") action_button = types.KeyboardButton("�� Комплимент") markup.add(start_button, action_button) bot.send_message(message.chat.id, text="Привет, ��\nВоспользуйся кнопками".format(message.from_user), reply_markup=markup)

текст приветственного сообщения в боте

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

Для начала создадим коллекцию комплиментов в отдельном файле `compliments.py`:

compliments = ('Выглядишь лучшее всех!', 'Сегодня будет замечательный день!', 'Ты обязательно всё сможешь!', 'Я не встречал людей добрее тебя!', 'С тобой приятно проводить время!',)

После этого импортируем файл и модуль для работы со случайными числами:

import random # для выбора случайного комплимента from compliments import compliments # коллекция комплиментов

Теперь можно приступать к созданию хендлера для обработки кнопок. В условии будем отслеживать, какой текст пришел от пользователя. Если встречаем «�� Старт», то выводим краткое описание возможностей, если «�� Комплимент» — присылаем случайное сообщение из коллекции. На все остальные сообщения будем отвечать просьбой воспользоваться кнопками. Весь код хендлера выглядит так:

# хендлер для обработки нажатий кнопок @bot.message_handler(content_types=['text']) def buttons(message): if (message.text == "�� Старт"): bot.send_message(message.chat.id, text="Я могу поддержать тебя и поднять настроение. Просто попроси об этом") elif (message.text == "�� Комплимент"): bot.send_message(message.chat.id, text=f"") else: bot.send_message(message.chat.id, text="Я могу отвечать только на нажатие кнопок")

ваш бот в телеграмм готов

Бот готов, исправно работает, отвечает на сообщения и присылает в чат случайные комплименты из собственной коллекции, а его полный код выглядит так:

import telebot # импортируем telebot from secrets import secrets # словарь с токеном из файла secrets.py from telebot import types # для определения типов import random # для выбора случайного комплимента from compliments import compliments # коллекция комплиментов # передаём значение переменной с кодом экземпляру бота token = secrets.get('BOT_API_TOKEN') bot = telebot.TeleBot(token) # хендлер и функция для обработки команды /start @bot.message_handler(commands=['start']) def start_message(message): # создаём кнопки бота markup = types.ReplyKeyboardMarkup(resize_keyboard=True) start_button = types.KeyboardButton("�� Старт") action_button = types.KeyboardButton("�� Комплимент") markup.add(start_button, action_button) # приветсвенное сообщение для команды /start bot.send_message(message.chat.id, text="Привет, ��\nВоспользуйся кнопками".format(message.from_user), reply_markup=markup) # хендлер для обработки нажатий кнопок @bot.message_handler(content_types=['text']) def buttons(message): if (message.text == "�� Старт"): bot.send_message(message.chat.id, text="Я могу поддержать тебя и поднять настроение. Просто попроси об этом") elif (message.text == "�� Комплимент"): bot.send_message(message.chat.id, text=f"") else: bot.send_message(message.chat.id, text="Я могу отвечать только на нажатие кнопок") # бесконечное выполнение кода bot.polling(none_stop=True, interval=0)

А полное дерево файлов в проекте выглядит так:

. └── bot/ ├── main.py ├── secrets.py └── compliments.py

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

Как добавить функционал и настроить ответы для бота в Телеграме?

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

Как опубликовать и запустить бота в Телеграме?

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

Как продвигать и увеличить популярность своего бота в Телеграме?

Расскажите о своем боте на сайте, в социальных сетях и в email-рассылке. Для тестового периода лучше привести в бот теплую аудиторию, которая вас уже знает и читает. Они могут попробовать бот, написать вам об ошибках. После этого можно заняться платной рекламой: купить ее у Telegram или обратиться к блогерам.

На каком языке лучше написать бота?

На любом, который вы знаете. Ботов можно писать на Python, C, Java. Чаще всего для этой задачи выбирают Python, потому что он прост в использовании.

Python-разработчик

Освойте Python с нуля. Подготовим к трудоустройству: дадим много практики, реальные проекты для портфолио, поможем с резюме. Лучшие студенты пройдут стажировки в проектах компаний-партнеров.

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

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

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

Антон Яценко

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

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

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

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

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

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

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

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

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

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

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

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

Инлайн-кнопки отличаются от обычных тем, что связаны не с областью клавиатуры в мессенджере, а с каким-то сообщением в Telegram-чате. Самый простой пример инлайн-кнопки — это меню в канале @BotFather, с помощью которого мы создавали токен для доступа к API Telegram. Например, вот так в нём выглядит инлайн-меню с уже созданными ботами:

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

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

Заключение

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

Читайте также:

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

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

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