Техническое задание: Telegram-бот с интеграцией Google Services
Основная цель
Разработка интеллектуального Telegram-бота, который предоставляет пользователям возможность безопасной авторизации через Google OAuth 2.0 с последующим автоматическим созданием стандартизированного набора таблиц в их личном Google Drive.
Функциональные требования
1. Взаимодействие с пользователем
- По команде /start бот отображает интерактивную кнопку "Подключить Google"
- Реализация Server-Side OAuth Flow с перенаправлением пользователя на кастомную страницу авторизации
- Отправка пользователю уведомлений о статусе операции (успех/ошибка)
2. Работа с Google API
- Авторизация через Google OAuth 2.0 с получением долгоживущего refresh_token
- Создание целевой папки в Google Drive пользователя
- Автоматическая генерация трех таблиц в Google Sheets внутри созданной папки:
- Таблица 1: Финансовая отчетность (ОПиУ)
- Таблица 2: Управление товарными позициями (SKU)
- Таблица 3: Конфигурационные параметры (Настройки)
3. Архитектурные требования
- Поддержка многопользовательского режима с изоляцией данных
- Безопасное хранение refresh_token в PostgreSQL базе данных
- Использование состояний (FSM) для управления пользовательскими сессиями
- Асинхронная обработка запросов
Технический стек
- Язык программирования: Python 3.10+
- Фреймворк для бота: Aiogram 3.x с FSM
- База данных: PostgreSQL
- Внешние API: Google Sheets API, Google Drive API
- HTTP-клиент: aiohttp или httpx
Требования к коду
- Чистая модульная архитектура с разделением ответственности
- Комментированный и читаемый код
- Обработка ошибок и исключительных ситуаций
- Возможность последующего развертывания на Linux-сервере
Этапы сотрудничества
- Обсуждение деталей и согласование архитектуры
- Разработка в приватном GitHub-репозитории
- Поэтапная демонстрация функциональности
- Тестирование и финальная настройка
- Поддержка при развертывании на целевом сервере