Свой Telegram-бот
Как построить бота поверх партнёрского API. Готового образа пока нет.
Шаблон
Рабочий скелет лежит в нашем репозитории: examples/partner-bot. Форкайте и переделывайте — это отправная точка, а не библиотека.
cp .env.example .env # токен бота + ваш ключ rsk_
docker build -t partner-bot .
docker run -d --env-file .env -v "$PWD/data:/data" partner-bot
Из коробки: /start спрашивает email и заводит аккаунт, /trial выдаёт пробник в пределах бюджета, /my показывает состояние. Внутри — обработка 429 по Retry-After, человеческие тексты на исчерпанный бюджет и SQLite ровно под соответствие «telegram id → аккаунт».
Архитектура
Бот — ваш процесс на любом языке. Он держит три вещи: токен Telegram, ваш ключ rsk_ и собственную базу соответствий «пользователь Telegram → аккаунт Logrus». Вся работа с VPN делегируется нашему API, бот занимается только UX и продажей.
Минимальный сценарий регистрации:
- Пользователь жмёт «Начать» → бот создаёт аккаунт:
POST /api/v1/reseller/accountsсemailиexternal_ref= его Telegram id. - В ответе приходит
generated_password— один раз. Бот отдаёт логин и пароль пользователю и не хранит пароль у себя. - Пользователь ставит приложение, логинится этими данными и получает ваш бренд и ваши узлы.
Правила безопасности
- Ключ
rsk_живёт только на сервере бота. Он создаёт аккаунты и меняет ваши цены; в клиентском приложении, в репозитории и в логах ему не место. - Ключ для бота просите со скоупом
accounts:write(иaccounts:read, если нужен список) — без прав на цены и выплаты. external_ref— ваш идентификатор пользователя, по нему вы потом сверяете свою базу с нашим списком клиентов.
Что бот делать не может
Принимать деньги. Оплата идёт через чекаут на вашей витрине: revshare считается из подтверждённых платежей, и подписка в обход этого вам ничего не приносит. Конфиг клиент тоже получает не в боте, а в приложении после логина.
Всё остальное бот умеет: завести клиента, выдать пробник, отключить и вернуть — см. Создание пользователей.
Если сценарий требует именно бота как точки продажи — приходите с ним на созвон, это разумный кандидат в приоритет.