maxbot-demo-chatbot-python
Пример чат-бота, написанного на Python с использованием SDK maxbot-chatbot-python и maxbot-api-client-python от GREEN-API.
Этот чат-бот демонстрирует возможности MAX BOT API по отправке текстовых сообщений, медиафайлов (картинки, аудио, видео, PDF), геолокаций и контактов с использованием системы сцен и интерактивных кнопок.
Содержание
- Установка среды для запуска
- Запуск чат-бота
- Настройка чат-бота
- Использование
- Структура кода
- Управление сообщениями
- Лицензия
Установка
Убедитесь, что у вас установлен Python версии 3.12 или выше:
python --version
Установите библиотеку:
git clone https://github.com/green-api/maxbot-demo-chatbot-python
Откройте проект в любой IDE.
Среда для запуска чат-бота готова, теперь необходимо произвести настройку и запустить чат-бот.
Запуск чат-бота
Параметры конфигурации:
BASE_URL- Базовый URL-адрес серверов платформы MaxBot. Все методы API будут маршрутизироваться по этому корневому адресу. Актуальный адрес указан в официальной документации.TOKEN- Уникальный секретный ключ авторизации (API-ключ) вашего бота. Получить его можно в личном кабинете после регистрации или создании бота на платформе business.max.ru.ratelimiter- Встроенный ограничитель частоты запросов. Он контролирует количество исходящих запросов в секунду (RPS), защищая бота от блокировки со стороны сервера за превышение лимитов. Рекомендуемое значение — не менее 25.timeout- Максимальное время ожидания ответа от сервера (в секундах). Если сервер не ответит в течение этого времени, запрос будет завершен с ошибкой. Оптимальное значение — 30 секунд.
- Создайте файл
.envв корневой директории проекта. - Добавьте в него ваши данные:
BASE_URL=https://platform-api.max.ru
TOKEN=1A2B3C4D5E6F7G8H9I0J9K8L7M6N5O4P3Q3R2S1T2U3V4W5X6Y7Z
Значение
ratelimiterиtimeoutможно изменить в файле main.py перед его запуском.
- Запустите бота командой:
python main.py
Программа инициализирует клиент, настроит менеджер состояний и запустит polling для получения уведомлений в реальном времени. Для остановки нажмите Ctrl + C.
Настройка чат-бота
Вы можете изменить медиафайлы, которые бот отправляет пользователям. Ссылки на файлы находятся в файле scenes/endpoints.py.
Например, для изменения PDF-файла найдите следующий блок:
elif text_lower in ["2", "/file"]:
await n.reply_with_media(
t(lang, "send_file_message") + t(lang, "links.send_file_documentation"),
"markdown",
"https://storage.yandexcloud.net/your-link/file.pdf",
self.get_control_buttons(lang)
)
Замените URL "https://storage.yandexcloud.net/your-link/file.pdf" на прямую ссылку вашего файла.
Использование
Если предыдущие шаги были выполнены, ваш бот будет готов к приему сообщений.
Напишите боту любое текстовое сообщение (например, /start). Чат-бот поддерживает 2 языка, поэтому сначала он предложит выбрать язык с помощью клавиатуры:
Please select your language:
Пожалуйста, выберите язык:
[English] [Русский]
Выбрав русский язык, вы получите приветствие с картинкой и главным меню в виде кнопок:
Добро пожаловать в MAX BOT API чат-бот, {Имя_Пользователя}!
GREEN-API предоставляет отправку данных следующих видов.
Выберите цифру или нажмите кнопку!
1. Текст 📩
2. Файл 📋
3. Картинка 🖼
4. Аудио 🎵
5. Видео 📽
6. Контакт 📱
7. Геолокация 🌎
8. О боте 🦎
Чтобы вернуться в начало, напишите *стоп* или *0*
Нажимая на кнопки (или отправляя соответствующие цифры), бот будет присылать вам демонстрационные сообщения с использованием различных методов MAX API (фотографии, голосовые сообщения, файлы) и прикреплять ссылки на официальную документацию.
Структура кода
Основной файл чат-бота — это main.py. В нем находится функция main, с которой начинается выполнение программы.
Данный бот использует паттерн сцен для организации кода. Логика разделена на фрагменты (сцены), каждая из которых соответствует определенному состоянию диалога:
scenes/start.py— приветственная сцена. Отвечает за выбор языка и инициализацию данных пользователя.scenes/main_menu.py— формирует главное меню, отправляет приветственное изображение и переключает контекст на рабочие эндпоинты.scenes/endpoints.py— содержит логику обработки всех функциональных кнопок (отправка текста, медиа, контактов).
Тексты сообщений вынесены отдельно и хранятся в файле assets/strings.yaml. Для получения нужной строки в зависимости от языка используется утилита перевода utils/yml_reader.py.
Управление сообщениями
Все взаимодействия реализованы через MAX API с использованием Python-библиотек:
- maxbot-api-client-python — базовый клиент для работы с API.
- maxbot-chatbot-python — фреймворк для создания ботов со сценами, состояниями и удобными обертками.
Отправка сообщений максимально упрощена благодаря методам объекта Notification. Например, отправка локации:
notification.reply_with_location(
lat=51.5074,
lon=-0.1278
)
Или отправка медиафайла:
notification.reply_with_media(
text="Look at this!",
format_type="markdown",
file_source="https://example.com/image.jpg"
)
Все доступные методы API описаны в официальной документации.
Полную документацию по MAX API можно найти на официальном портале разработчиков: dev.max.ru/docs-api.
Metadata
Release files for maxbot-demo-chatbot-python 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| maxbot_demo_chatbot_python-1.1.0.tar.gz | 5.9 kB | Without provenance | Details for maxbot_demo_chatbot_python-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl |
Total release size: 11.7 kB
Release files / maxbot_demo_chatbot_python-1.1.0.tar.gz
| Download URL | maxbot_demo_chatbot_python-1.1.0.tar.gz |
|---|---|
| Size | 5.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b0d31b3d7f096db920635ef0641b29ebe9b322bb72a24aea9e985eb5b95b7ae
|
|
BLAKE2b-256 checksum How to use checksums |
17724889ac57ad9b9109d851951956d446b08e29f3a2cf83b47ebd2d79340c3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl
| Download URL | maxbot_demo_chatbot_python-1.1.0-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2306330ae4787dfa7baacef0364fa6faa3b47715257453d8397905f1e63bc5a7
|
|
BLAKE2b-256 checksum How to use checksums |
8953e96cb321b4c9957fd9dfbb3495e23994830681d4028b2a8e4b8bf146203c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for maxbot-demo-chatbot-python 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.