Телеграм бот для учета расходов в Google таблицах
Основная идея заключается в хранении данных не где-то на сервере, а на Google диске пользователя в таблице. Сам же бот предоставляет удобный интерфейс в Telegram для взаимодействия с таблицей: добавление расходов/доходов, настройка категорий трат/доходов, настройка счетов.
Клонируем репозиторий: git clone https://github.com/savlagood/FinanceControlBot.git
- Переходим в Google Developers Console и создаем новый проект (или выбираем уже существующий).
- Далее нажимаем на "enable apis and services" и в поле ввода (Search for APIs and Services) вводим: "Google Drive API" и подключаем его.
- Затем вводим в том же поле: "Google Sheets API" и подключаем его.
Теперь сгенерируем файл с правами доступа: google_token.json
- Переходим "APIs & Services > Credentials" и выбираем "Create credentials > Service account key".
- Заполняем форму и нажимаем "Done"
- Нажимаем "Manage service accounts" над таблицай "Service Accounts"
- В стоблице "Actions" у только что созданного сервисного аккаунта нажимаем на ⋮ (три вертикальный точки) и выбираем "Manage keys", затем “ADD KEY > Create new key”.
- Выбираем JSON тип и нажимаем "Create". Автоматически должен скачаться json-файл с правами доступа
- Переместите полученный файл в директорию с проектом и переименуйте: "google_token.json"
В данной файле хранится несколько настроек, необходимый для работы бота.
- Переименуйте файл "template_config.py" в "config.py"
- TELEGRAM_TOKEN: телеграм токен бота, с которым будет взаимодействовать приложение. Создать бота можно у отца всех ботов.
- CREATOR: ссылка на ваш телеграм аккаунт.
- BOT_EMAIL: email адрес бота, который можной найти в файле "google_token.json" в поле "client_email".
- LINK_TO_GOOGLE_SHEET: ссылка на эталонную Google таблицу. Данное поле не нужно менять, тк бот привязан к конкретной структуре таблицы.
- Создаем виртуальное окружение
python -m venv venvи активируем егоvenv\Scripts\activate(пример для Windows). - Устанавливаем зависимости:
pip install -r requirements.txt.
Без серверной базы данных не обойтись, в ней хранятся ссылки на Google таблицы пользователей.
Для инициализации базы данных в директории проекта выполните команду: python create_db.py
Ура! Теперь можно запустить бота следующей командой (выполняется в папке с проектом): python server.py