# Описание
____
Данный телеграм бот предназначен для ведения личных расходов.
Запись данных будет происходить в Google таблицу, доступ к боту и данным будет только у вас.
Перед началом работы с ботом, вам нужно будет выполнить несколько подготовительных шагов описанных ниже.
## Шаг №1. Создание бота в Телеграме.
1. Перейдите в диалог с инструментом для разработки чатов — https://telegram.me/BotFather.
2. Нажмите кнопку «Start» или введите в диалоге команду /start.
3. Далее введите команду /newbot, чтобы сделать новый бот.
4. Укажите название — как будет отображаться чат в списке контактов.
5. Последнее — системное имя: это то, что будет ником после знака @.
Название может быть любым: нестрашно, если оно будет дублировать уже существующие.
Но системное имя обязательно должно быть уникальным.
Если имя уже занято, вы увидите подсказку: «Sorry, this username is already taken. Please try something different».
После успешного создания вы получите токен. Сохраните его, он понадобится для дальнейшей интеграции.
Если вы закрыли окно и нужно снова найти токен, напишите в диалоге команду /token.
Подробнее можно узнать пройдя по ссылке: https://sendpulse.com/ru/knowledge-base/chatbot/telegram/create-telegram-chatbot
## Шаг №2. Создание Google Sheets.
1. Войдите в свой Google Account
2. Перейдите по ссылке: https://docs.google.com/spreadsheets/d/1dq9hVxhARG7Q-Ij78fEijACe0sLc58sHLMmf6dTJ-Lg/edit#gid=0
3. Сделайте копию таблицы себе на Google account: Файл -> Создать копию -> Скопировать
4. Зайдите в своем аккаунте в скопированную вами таблицу
5. Перейдите на второй лист - "Sheet2"
6. В колонках А1, В1, С1, D1, E1 измените "url_table" на url своей таблицы, как показано на скриншоте, и нажмите "открыть доступ"

## Шаг №3. Настройка Google API
1. Заходим в <a href="https://console.developers.google.com/apis/dashboard" target="_blank" rel="nofollow noopener">консоль настройки Google API</a> и создаем новый проект, с произвольным названием


2. В меню "Credentials" нажимаем "Create credentials", затем выбираем "Service account"

3. Вписываем имя для сервисного аккаунта

4. Ставим доступ для нашего проекта, нажимаем "DONE"

5. Заходим на сервисный аккаунт

6. Нажимаем "Keys" -> "ADD KEY" -> "Create new key"

7. Выбираем формат "JSON", у скачанного файла меняем имя на более понятное для вас и запоминаем путь к нему
8. Открываем сохраненный файл в виде блокнота, копируем "client_email"
9. Заходим в Google Sheets, выбираем нашу таблицу и добавляем в "Настройки доступа" скопированный "client_email", с атрибутом "Редактор"

10. Включаем доступ API для проекта. Заходим в <a href="https://console.developers.google.com/apis/dashboard" target="_blank" rel="nofollow noopener">консоль настройки Google API</a>. Проверяем что выбран проект, который мы создали и нажимаем на "ENABLE APIS AND SERVICES"

11. В поле поиска "Search for APIs and Services", находим "Google Drive API" и "Google Sheets API" активируем их
12. Клонируем репозиторий, используя команду "git clone https://github.com/Shone-Kristas/tgbot_for_expenses.git"
13. Устанавливаем пакеты из файла "Pipfile.lock":
* Переходим в клонированный проект
* Инициализируем виртуальную среду командой "pipenv shell"
* Устанавливаем пакеты "pipenv sync"
14. Остается только внести свои данные в файл "data.txt":
* Вместо "Token_for_TelegramBot" - без кавычек, внести токен полученный при создании телеграм бота из Шаг№1
* Вместо "GoogleSheets_URL" - без кавычек, внести url скопированной таблицы из Шаг№2 п.6
* Вместо "Path_to_file" - без кавычек, прописать путь к вашему json файлу из Шаг№3 п.7 (пример пути: /home/nize/Downloads/tgbot/service_account.json)
## Как запустить бота
1. В терминале перейдите в директорию склонированного проекта и выполните команду "python main.py"
2. В приложении "Telegram" найдите созданного вами бота: Введите его никнейм из Шаг№1 п.5