- Стек технологий.
- Для чего нужен этот бот.
- Информация по использованию работающей версии бота.
- Описание проекта.
- Как скачать и запустить.
- Python
- Pandas
- Gspread (Python API для Google Sheets)
- Windows 10 (система, в которой велась разработка проекта)
- Aiogram
Бот был сделан в рамках фриланс-проекта в соответствии с техническим заданием заказчика. Бот общается с пользователем и собирает данные о заказе, которые потом подгружает в таблицу в Google Sheets.
Я оставил у себя работающую демо-версию. Любой может просмотреть ее по адресу в телеграме: @1196493. Любой может протестировать бота, следуя пошаговым инструкциям и нажимая на inline клавиатуру.
-
Бот активируется командой /start.
-
Пользователя просят выбрать одну из активностей.
-
Далее пользователя просят ввести ФИО.
-
Далее пользователя просят ввести номер телефона.
-
Бот показывает пользователю итог по данным, которые пользователь предоставил.
-
Бот подгружает данные от пользователя в Google Sheets:
- Максимальное количество запросов за 1 сессию = 25, при превышении лимита бот попросит перезапустить его.
- Во время работы над проектом я не знал про возможности хранить секреты в .env файлах. Я не стал менять свою логику, но хочу отметить, что новые проекты я делаю через .env.
- Во время работы над проектом я не добавлял requirements.txt, так как не имел опыта по данному моменту, но сделал это сейчас для удобства установки.
-
Fork'ните этот репозиторий.
-
Клонируйте форкнутый репозиторий.
-
Советую установить виртуальное окружение, например так:
python -m venv venv
и далее активируйте его:. venv/Scripts/activate
(для линукса это. venv/bin/activate
, но данный проект реализован на Windows) для деактивации можно набратьdeactivate
Вероятно, Windows выдаст вам ошибку про Scripts, для ее устранения:- Зайдите в PowerShell как администратор (наберите powershell в пуск).
- Наберите
set-executionpolicy remotesigned
- Вас попросят подтвердить это, укажите Y или Yes.
- После этого активащия виртуального окружения должна заработать.
-
Установите зависимости из requirements.txt
pip install -r requirements. txt
-
Создайте файл private_infomration_1196494.py, в котором укажите API телеграм бота, который будет использоваться и API для гугл таблицы, куда будет сохраняться информация:
API_KEY='dsfsdf234234$asdasd' Google_sheets_API_details='sasdaffdgdfgfdfgsdfsfsd2131312'
-
Запустите проект из файла project 1196493 2.0.py (в VSCode горячая клавиша запуска F5). После этого ваш телеграм бот должен начать работать.
- Зайдите в приложение телеграм и в поиске аккаунтов наберите @BotFather.
- Внизу кликните на меню и выберите Create a new bot либо просто наберите /newbot
- Напишите имя для вашего бота (может быть любым).
- Напишите имя пользователя для вашего бота, обязательно должно оканчиваться на bot, например: ui_bot, salesbot. После этого BotFather выдаст вам всю информацию о вашем боте, в том числе API токен (как в примере в пункте 7).
- Зайдите на ссылку https://console.cloud.google.com/projectcreate
- В Project name укажите имя вашего проекта и после нажмите кнопку CREATE.
- Включите google sheets API, для этого вверху страницы справа от лого GoogleCloud выберите имя вашего проекта. Далее в колонке слева выберите API, если его нет, внизу нажмите на MORE PRODUCTS, и далее зайдите в APIs & Services, перейдите в Enabled APIs & Services. На открывшейся странице вверху нажимите + ENABLE APIS AND SERVICES. Далее у вас откроется список APIs and Services, вы в нем ищете Google Sheets API и кликаете на него, после чего в открывшемся окне нажимаете ENABLE.
- Под APIs & Services в Google Sheets API выберите CREATE CREDENTIALS, в открывшемся окне выберите Google Sheets API и Application Data и нажмите NEXT. В открывшемся окне напишите Service account name (любое имя в одно слово) и нажмите CREATE AND CONTINUE. Выберите роль - Editor, нажмите CONTINUE и далее нажмите DONE.
- Теперь вам необходимо будет загрузить credentials, для этого перейдите в CREDENTIALS вкладку все в том же Google Sheets API, кликните на service account, что вы только что создали. В открывшемся окне нажмите на вкладку KEYS. В ней нажмите ADD KEY, create a new key. Key type выберите JSON и нажмите CREATE. Файл загрузится на ваш компьютер, перенесите его в ту же папку, где находится ваш проект. Название файла укажите в переменной Google_sheets_API_details в вашем .env файле.
- Скопируйте email вашего service account (смотрите пункт 5), зайдите в Google Sheet, который вы планируете использовать для выгрузки данных (для этого в своем обычном гугл аккаунте можно создать новый sheet) и нажмите поделиться (share). В открывшемся окне вставьте скопированный адрес, убедитесь, что уровень доступа указан Editor и нажмите Send.