Разработка системы Telegram-автоответчиков
Описание проекта
Необходимо создать мастер-бота, который позволяет пользователям подключать свои Telegram-аккаунты (не ботов) и настраивать для них автоматические ответы. Один мастер-бот управляет множеством "пользовательских сессий" (аккаунтов).
Функционал и ход работы
1. Физическая структура
- Проект должен быть развернут в /root/bot
- Требуется создать .service файл для systemctl и инструкцию по запуску (будет уточнено отдельно)
- Токен бота, API ID и API Hash должны храниться в конфиг-файле (не в .env)
2. Взаимодействие с мастер-ботом (регистрация)
- Пользователь запускает мастер-бота -> бот запрашивает номер телефона аккаунта для подключения
- Бот отправляет запрос в API Telegram для получения кода подтверждения
- Если включена двухфакторная аутентификация (2FA), запрашивается облачный пароль
- Важно: код вводит сам пользователь (копирует из СМС в бота). БОТ делает только запрос коду к апи.
- После авторизации бот принимает текст автоответа (требуется подтверждение, что текстовое сообщение поддерживает форматирование: ссылки кликабельны, как в обычном мессенджере)
- При успехе пользователь получает уведомление.
3. Системные правила и логика работы автоответчика
- Опознавание диалогов: В момент регистрации все старые существующие чаты одного аккаунта помечаются как "Игнорируемые". Автоответ будет работать только для новых диалогов, созданных после начала сессии.
- Цепочка ответа:
- Первое входящее сообщение от человека -> отправляется заданный текст Автоответа.
- Если человек пишет снова (независимо от тайминга) -> отправляется второе сообщение ("Нет на месте").
- Все последующие сообщения от этого человека игнорируются.
- Управление сессией: Один аккаунт поддерживается в онлайне не более 7 дней. После этого - автоматический сброс сессии и уведомление пользователя о необходимости перезайти. После создания сессии пользователь в боте обе видет кнопки "Изменить" (сбросить данные профиля и авторизационного кода, оставив ту же сессию) и "Выйти" (удалить авторизационные данные).
- Уникальность: Один и тот же аккаунт может быть привязан только к одному пользователю (номер подключено уникально).
Дополнительно
После р реализации заказчик гатов предложить доработки и дальнейшее стабильное сотрудничество для добвления нового функционала.