bot_report — Telegram-бот выгрузки отчёта из Google Sheets
Telegram-бот на Python с доступом по паролю, который по кнопке выгружает защищённую Google-таблицу и отдаёт её пользователю файлом Excel.

Слайд 1 из 2
ОПИСАНИЕ
Бот выдаёт сводный отчёт компании, хранящийся в Google Sheets. Реализован на чистом requests: собственный цикл long polling getUpdates с ведением offset и дедупликацией обновлений по update_id (множество обработанных id с обрезкой до последних 1000, чтобы не накапливать память). Доступ к боту закрыт паролем. Список авторизованных пользователей персистится в JSON-файле (authorized_users.json); проверка пароля нормализует ввод (убирает пробелы, приводит к нижнему регистру). После авторизации пользователю выдаётся постоянная ReplyKeyboard с кнопкой выгрузки. Таблица защищена, поэтому скачивание идёт через Google Drive API: сервисный аккаунт (api_gg.json) авторизуется в scope drive.readonly, файл экспортируется методом files().export_media в формат xlsx (сохраняя все листы и стили) и загружается чанками через MediaIoBaseDownload во временный файл, который затем отправляется документом и удаляется. Ошибки на каждом этапе перехватываются и возвращаются пользователю понятным сообщением.
ИСПОЛЬЗУЕМЫЕ ИНСТРУМЕНТЫ
- Python
- Telegram Bot API
- requests
- Google Drive API
- google-auth
- google-api-python-client
- JSON
- Git
РЕЗУЛЬТАТ
- Реализована выгрузка защищённой Google-таблицы через Drive API (export_media в xlsx) с чанковой загрузкой во временный файл.
- Реализован доступ по паролю с персистентным списком авторизованных пользователей в JSON и нормализацией ввода пароля.
- Реализован long polling с дедупликацией обновлений по update_id и ограничением размера буфера обработанных id.
- Реализованы постоянная ReplyKeyboard и обработка ошибок выгрузки с возвратом сообщения пользователю.
AI АССИСТЕНТ
Задать вопрос по этой работе