Техническое задание: 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-репозитории
  • Поэтапная демонстрация функциональности
  • Тестирование и финальная настройка
  • Поддержка при развертывании на целевом сервере