Для создания бота будем использовать библиотеку aiogram.
Компании используют ботов для решения разных задач: рассылают новости, принимают платежи. Повседневные пользователи тоже используют чат-ботов для своих нужд.
Шаг 1
Установка Python
Устанавливаем Python. В интернете достаточно много инструкций по установке Python.
Шаг 2
Подключение aiogram
Для установки aiogram мы будем пользоваться pip.
pip - система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.
- Нажмите клавиши Win+R и в появившемся окне введите cmd после чего нажмите Enter.
- Введите в терминал: pip install aiogram.
- Дождитесь загрузки.
- Библиотека aiogram установлена на ваш компьютер. 👍
Шаг 3
Пишем код
Писать код мы будем в IDE. Я пользуюсь VS code. Вы можете выбрать любой понравившийся.
Создаём файл bot.py.
Импортируем из библиотеки aiogram нужные нам 3 класса и 1 модуль
from aiogram import Bot, Dispatcher, executor, types
Переходим по ссылке https://t.me/botfather и получаем токен.
TOKEN = 'ВАШ ТОКЕН'
Теперь необходимо инициализировать объекты bot и Dispatcher, передав первому наш токен. Если их не инициализировать, то код не будет работать.
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
Теперь создадим событие, которое будет обрабатывать введённое пользователем сообщение:
@dp.message_handler()
async def echo(message: types.Message):
await message.answer(message.text)
Т.к. бот должен реагировать на любое текстовое сообщение, то скобки в @dp.message_handler оставляем пустыми. Для ответа мы используем метод message, указывая, что возвращаем исходный текст, принятый в message.
Последний шаг
Последний шаг - настроить получение сообщений от сервера в Telegram.
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Получившийся код
from aiogram import Bot, Dispatcher, executor, types
TOKEN = 'ВАШ ТОКЕН'
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
@dp.message_handler()
async def echo(message: types.Message):
await message.answer(message.text)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)