Telegram-бот для просмотра и расчёта зарплат, использующий Google Sheets для хранения данных.
Для работы бота необходимы:
- Python 3.11+
- Docker (если ты хочешь запускать бота в контейнере)
- Google API credentials для работы с Google Sheets
- Токен Telegram-бота от BotFather
- Открой Telegram и найди пользователя BotFather.
- Создай нового бота с помощью команды
/newbot
. - Получи токен для своего бота, который нужно будет указать в
.env
файле.
Чтобы бот мог взаимодействовать с Google Sheets, нужно настроить доступ к API:
- Перейди на Google Cloud Console.
- Создай новый проект (если у тебя его нет).
- Перейди в раздел APIs & Services → Credentials.
- Нажми Create Credentials → Service Account.
- Создай Service Account и получи файл с ключами в формате
.json
. - В разделе Google Sheets открой таблицу, с которой будет работать бот, и добавь email из созданного сервисного аккаунта в качестве редактора.
Создай файл .env
в корневом каталоге проекта и добавь следующие параметры:
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
GOOGLE_CREDENTIALS=path_to_your_google_credentials.json
Пример:
TELEGRAM_BOT_TOKEN=123456789:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
GOOGLE_CREDENTIALS=/app/google_credentials.json
Убедись, что файл с сервисным ключом Google находится по указанному пути.
Для запуска локально без Docker:
- Установи зависимости:
pip install -r requirements.txt
- Запусти бота:
python main.py
Чтобы запустить бота с использованием Docker:
- Убедись, что файл
requirements.txt
содержит все необходимые зависимости. - Выполни команду для сборки и запуска Docker-контейнера:
bash deploy.sh
Это создаст Docker-образ и запустит бота в контейнере.
Ты можешь проверить статус запущенного контейнера с помощью команды:
docker ps
Для остановки контейнера используй:
docker stop telegram-bot
- После успешного запуска бота, добавь его в Telegram.
- Введи команду для начала работы (например,
/start
), и бот предложит пройти авторизацию для просмотра зарплаты. - Авторизация требует ввести номер табеля и последние цифры паспорта.
- После авторизации бот покажет зарплату за выбранный месяц.
- main.py — основной файл, запускающий бота.
- settings.py — содержит настройки и конфигурации для бота.
- auth.py — модуль, отвечающий за авторизацию пользователей.
- salary.py — модуль для расчета зарплат на основе данных из Google Sheets.
- google_services.py — содержит функции для работы с Google API.
- sheet_operations.py — логика взаимодействия с Google Sheets.
- keyboards.py — реализует клавиатуры Telegram для взаимодействия с пользователями.
Если возникли вопросы или проблемы, свяжитесь с автором по email: salidjanm.ov@gmail.com.