142
Создание Telegram-бота может показаться сложной задачей для новичков, но с использованием правильных инструментов и подхода это можно сделать всего за час. В этом пошаговом руководстве мы создадим простого Telegram-бота с помощью популярной библиотеки aiogram . Библиотека aiogram — это современный фреймворк для работы с Telegram Bot API, который позволяет легко создавать асинхронные боты.
Что понадобится для создания бота?
Шаг 1: Создание нового бота через BotFather
Для начала нам нужно создать нового бота в Telegram. Для этого:
@BotFather
./start
./newbot
._bot
.Пример ответа от BotFather:
1 2 3 |
Done! Congratulations on your new bot. You will find it at t.me/my_first_bot. Use this token to access the HTTP API: 123456789:ABCdefGhIJKlmNoPQRstuVWXyz |
Этот токен нужен для аутентификации вашего бота в Telegram.
Шаг 2: Установка необходимых библиотек
Теперь, когда у нас есть токен, установим библиотеку aiogram
. Вы можете установить её с помощью pip:
1 |
pip install aiogram |
Если вы используете Python в виртуальном окружении, активируйте его перед установкой.
Шаг 3: Создание базового скрипта бота
Создайте новый файл, например bot.py
, и откройте его в вашем любимом текстовом редакторе. Добавьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import logging from aiogram import Bot, Dispatcher, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.types import ParseMode from aiogram.utils import executor # Включаем логирование logging.basicConfig(level=logging.INFO) # Инициализация бота API_TOKEN = 'ВАШ_ТОКЕН' bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) # Обработчик команды /start @dp.message_handler(commands=['start']) async def send_welcome(message: types.Message): await message.reply("Привет! Я твой первый Telegram-бот. Отправь мне любое сообщение, и я его повторю.") # Обработчик текстовых сообщений @dp.message_handler() async def echo(message: types.Message): await message.answer(message.text) # Запуск бота if __name__ == '__main__': executor.start_polling(dp, skip_updates=True) |
Разберём код:
aiogram
для работы с ботом.Bot
с нашим токеном и диспетчер Dispatcher
, который будет обрабатывать входящие сообщения./start
: Когда пользователь отправляет команду /start
, бот отвечает приветственным сообщением.executor.start_polling()
запускается процесс получения обновлений от Telegram.Шаг 4: Запуск бота
Теперь, когда код готов, можно запустить бота. Просто выполните следующую команду в терминале:
1 |
python bot.py |
Если всё сделано правильно, вы увидите сообщение о том, что бот запущен и начинает получать обновления.
Шаг 5: Тестирование бота
Откройте Telegram, найдите своего бота по имени пользователя (например, @my_first_bot
) и начните с ним диалог:
/start
. Бот должен ответить: “Привет! Я твой первый Telegram-бот. Отправь мне любое сообщение, и я его повторю.”Поздравляем! Вы только что создали своего первого Telegram-бота!
Дополнительные возможности
Теперь, когда вы знаете основы, можно добавить больше функциональности в бота. Вот несколько идей:
Пример добавления кнопок:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton # Создание клавиатуры keyboard = ReplyKeyboardMarkup(resize_keyboard=True) button_hi = KeyboardButton('Привет!') keyboard.add(button_hi) @dp.message_handler(commands=['start']) async def send_welcome(message: types.Message): await message.reply("Привет! Нажми на кнопку ниже.", reply_markup=keyboard) @dp.message_handler(text='Привет!') async def handle_hi(message: types.Message): await message.answer("И тебе привет!") |
Заключение
Создание Telegram-бота на Python с использованием библиотеки aiogram — это простая и увлекательная задача. За один час вы можете создать базового бота, который сможет отвечать на команды и текстовые сообщения. Aiogram предоставляет мощные инструменты для расширения функциональности бота, поэтому не останавливайтесь на достигнутом и продолжайте экспериментировать!
Удачи в разработке ваших ботов!