Начало работы⚓︎
Перед началом работы рекомендуем создать и активировать виртуальное окружение, чтобы изолировать зависимости проекта:
python -m venv .venv
source .venv/bin/activate # Linux / macOS
.venv\Scripts\activate # Windows PowerShell
Установка python-trueconf-bot⚓︎
Чтобы начать работу с python-trueconf-bot, установите библиотеку одним из способов:
-
Из глобального репозитория PyPI:
2. Из локального собранного пакета (.whl)
Info
После установки будут автоматически подтянуты зависимости: websockets
, httpx
, mashumaro
, pillow
, aiofiles
, magic-filter
.
Первое создание простого эхо-бота⚓︎
Для начала импортируйте нужные классы:
Далее создайте экземпляры Router и Dispatcher и подключите их:
Бот поддерживает два типа авторизации: по токену или по логину и паролю. Вы можете выбрать наиболее удобный способ.
Авторизация по токену⚓︎
Если вы используете подключение по токену, сначала получите его, как описано в официальной документации API.
Рекомендуется хранить токен в переменной окружения или в .env-файле. Не забудьте добавить .env в .gitignore, если работаете с публичными репозиториями.
from os import getenv
TOKEN = getenv("TOKEN")
bot = Bot(server="video.example.com", token=TOKEN, dispatcher=dp)
Авторизация по логину и паролю⚓︎
Для этого используйте метод .from_credentials
:
bot = Bot.from_credentials(
username="echo_bot",
password="123tr",
server="10.110.2.240",
dispatcher=dp
)
Info
При каждом вызове from_credentials() бот обращается к серверу за получением нового токена. Срок жизни каждого токена — 1 месяц.
Обработчик сообщений⚓︎
Теперь создадим простую функцию-обработчик входящих сообщений. Она будет отвечать пользователю тем же текстом (классический «эхо-бот»):
Запуск бота⚓︎
Запуск бота происходит внутри асинхронной функции main, которая передаётся в asyncio.run():
Почему async/await?
Библиотека python-trueconf-bot основана на asyncio.
Это значит, что все сетевые операции (подключение к серверу, приём и отправка сообщений) выполняются асинхронно — не блокируя основной поток. Поэтому:
- обработчики пишутся как
async def
, - для вызовов методов используется
await
, - запуск организуется через
asyncio.run(...)
.
Такой подход позволяет обрабатывать сразу несколько событий и сообщений параллельно, без задержек и подвисаний.