Создание первой версии бота

Создание Telegram-бота – это увлекательный процесс, который открывает перед вами новые горизонты в мире программирования и бизнеса. Начинать всегда труднее всего, особенно когда речь идёт о первой версии вашего проекта. В этой главе мы подробно рассмотрим, как создать базовую версию вашего бота, применяя знакомые на этом этапе темы и понятия, извлечённые из предыдущих глав.

Определение основных задач

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

Создание структуры проекта

После того как основные функции определены, следует заняться проектированием структуры вашего бота. Это не просто удобство – это необходимая мера для обеспечения понятности и упорядоченности вашего кода. Создаем папку, в которой будет храниться весь код, а внутри неё можно выделить следующие подкаталог:

1. main – для основного скрипта.


2. handlers – для обработки различных команд и сообщений.


3. models – для хранения моделей данных, таких как товары и пользователи.

Такая структура облегчит дальнейшую разработку и позволит вам по мере роста проекта добавлять новые функции и модули, не запутываясь в коде.

Подключение библиотеки для работы с Telegram API

На следующем этапе мы подключим библиотеку, которая упростит взаимодействие с Telegram API. Одной из самых популярных является библиотека `python-telegram-bot`. Её установка не займет много времени:

pip install python-telegram-bot

После установки необходимо импортировать библиотеку в ваш основной скрипт. Это позволит использовать функции работы с ботом. Создадим файл `main.py` и добавим следующий код:

import logging


from telegram import Update


from telegram.ext import Updater, CommandHandler, CallbackContext

Здесь мы подключения средств логирования и необходимых классов для работы с обновлениями и обработчиками команд.

Настройка логирования

Логирование играет важную роль в разработке любого программного обеспечения. Оно обеспечивает контроль над процессом выполнения, помогает выявлять ошибки и анализировать поведение программы. Для начала работы с логированием добавим в начало файла `main.py` следующий код:

logging.basicConfig(format='%(asctime)s – %(name)s – %(levelname)s – %(message)s', level=logging.INFO)

Теперь, когда возникнут ошибки или будут вызваны определенные события, эти данные будут записываться в консоль, что значительно легче отслеживать на ранних этапах создания бота.

Реализация команд

Следующим шагом станет реализация обработки команд. Начнём с создания функции `start`, которая будет вызываться при введении команды `/start`. Эта команда должна отправлять пользователю приветственное сообщение:

def start(update: Update, context: CallbackContext) -> None:


....update.message.reply_text('Добро пожаловать в наш магазин! Чем могу помочь?')

Теперь необходимо связать эту функцию с соответствующей командой. Для этого мы создадим экземпляр `Updater` и добавим обработчик команд:

def main():


....updater = Updater("YOUR_TOKEN_HERE")


....updater.dispatcher.add_handler(CommandHandler("start", start))

....updater.start_polling()


....updater.idle()

Не забудьте заменить `"YOUR_TOKEN_HERE"` на токен вашего бота, который вы получите у BotFather. После этого можно запустить наш проект, и при вводе команды `/start` пользователю будет отправлено приветственное сообщение.

Создание списка товаров

Чтобы ваш бот смог представлять пользователю список товаров, создадим простую модель товара. Для этого в директории `models` создадим файл `product.py` и в нём определим класс `Product`:

class Product:


....def __init__(self, id: int, name: str, price: float):


........self.id = id


........self.name = name


........self.price = price

Теперь добавим несколько примеров товаров в наш основной файл. В функции `start` мы к приветствию дополнительно прикрепим информацию о доступных товарах. Например:

products = [


....Product(1, "Товар 1", 100.0),


....Product(2, "Товар 2", 200.0),


]

def start(update: Update, context: CallbackContext) -> None:


....message = 'Добро пожаловать в наш магазин!\nНаши товары:\n'


....for product in products:


........message += f"{product.id}. {product.name} – {product.price} руб.\n"


....update.message.reply_text(message)

Таким образом, при вводе команды `/start` пользователь будет видеть не только приветственное сообщение, но и список товаров.

Оформление заказа

Последней важной функцией первой версии нашего бота будет возможность оформления заказа. Для этого мы создадим новую команду `/order`, которая позволит пользователю выбрать товар по ID и подтвердить его покупку. Код для этой команды будет выглядеть следующим образом:

def order(update: Update, context: CallbackContext) -> None:


....if len(context.args) == 0:


........update.message.reply_text("Пожалуйста, укажите ID товара для заказа.")


........return

....product_id = int(context.args[0])


....product = next((p for p in products if p.id == product_id), None)

....if product:


........update.message.reply_text(f"Вы успешно заказали {product.name}. Спасибо за покупку!")


....else:


........update.message.reply_text("Товар с таким ID не найден.")

После этого не забудьте добавить обработчик для команды `/order` аналогично тому, как мы это сделали для команды `/start`.

Запуск бота и тестирование

На последнем этапе мы можем приступить к запуску нашего бота. Запустив скрипт `main.py` (в терминале ввести python main.py или python3 main.py), вы должны увидеть сообщение о том, что бот запущен и готов принимать команды. Попробуйте ввести `/start`, а затем `/order 1`.

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

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

Загрузка...