Telegram-боты — это мощный инструмент для автоматизации задач, улучшения взаимодействия с пользователями и даже для ведения бизнеса. Если вы хотите создать своего первого бота на Python, эта статья станет вашим пошаговым руководством. Мы разберем, как использовать библиотеку Aiogram, как подключить бота к Telegram API и как сделать его функциональным. Всё это — с подробными объяснениями для новичков.
Python — это один из самых популярных языков программирования для создания Telegram-ботов. Он прост в изучении, имеет понятный синтаксис и множество библиотек, которые упрощают разработку. Среди библиотек для работы с Telegram API выделяется Aiogram — современная и мощная библиотека, которая поддерживает асинхронное программирование. Это значит, что ваш бот сможет обрабатывать несколько запросов одновременно, не блокируя выполнение других задач.
pip install aiogram
Теперь, когда у нас есть API-токен, давайте создадим файл main.py и начнем писать код. Я буду комментировать каждую часть, чтобы вам было понятно, что происходит.
1. Импортируем необходимые модули
from aiogram import Bot, Dispatcher, executor, types
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
2. Указываем API-токен
API_TOKEN = 'ВАШ_API_ТОКЕН'
Здесь нужно вставить токен, который вы получили от BotFather. Это ключ, который позволяет вашему боту взаимодействовать с Telegram API.
3. Инициализируем бота и диспетчер
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
4. Создаем клавиатуру с кнопками «Да» и «Нет»
keyboard = ReplyKeyboardMarkup(resize_keyboard=True)
button_yes = KeyboardButton(text="Да")
button_no = KeyboardButton(text="Нет")
keyboard.add(button_yes, button_no)
5. Обработчик команды /start
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.answer("Привет! Я бот, который задает вопросы.", reply_markup=keyboard)
await message.answer("Вы любите Python?", reply_markup=keyboard)
6. Обработчик ответов пользователя
@dp.message_handler()
async def handle_answer(message: types.Message):
if message.text == "Да":
await message.answer("Отлично! Python — это круто! 🐍", reply_markup=keyboard)
elif message.text == "Нет":
await message.answer("Очень жаль! Может, стоит попробовать? 😊", reply_markup=keyboard)
else:
await message.answer("Пожалуйста, выберите ответ, нажав на кнопку.", reply_markup=keyboard)
7. Запуск бота
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
from aiogram import Bot, Dispatcher, executor, types
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
# Укажите ваш API-токен
API_TOKEN = 'ВАШ_API_ТОКЕН'
# Инициализация бота и диспетчера
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
# Создаем клавиатуру с кнопками "Да" и "Нет"
keyboard = ReplyKeyboardMarkup(resize_keyboard=True)
button_yes = KeyboardButton(text="Да")
button_no = KeyboardButton(text="Нет")
keyboard.add(button_yes, button_no)
# Обработчик команды /start
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.answer("Привет! Я бот, который задает вопросы.", reply_markup=keyboard)
await message.answer("Вы любите Python?", reply_markup=keyboard)
# Обработчик ответов пользователя
@dp.message_handler()
async def handle_answer(message: types.Message):
if message.text == "Да":
await message.answer("Отлично! Python — это круто! 🐍", reply_markup=keyboard)
elif message.text == "Нет":
await message.answer("Очень жаль! Может, стоит попробовать? 😊", reply_markup=keyboard)
else:
await message.answer("Пожалуйста, выберите ответ, нажав на кнопку.", reply_markup=keyboard)
# Запуск бота
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
python main.py
Теперь у вас есть простой, но функциональный Telegram-бот, который задает вопрос и предлагает выбрать ответ с помощью кнопок. Вы можете расширить его функционал, добавив больше вопросов или команд. Если у вас остались вопросы или что-то не работает, обращайтесь — я помогу. 😊
Обсудить проект
Ваш запрос отправился к нам
Скоро с вами свяжется менеджер