Бот для бронирования чего угодно через телеграм бота + интеграция с гугл календарем
для работы с гугл календарем нужно получить credentials.json инструкция по получению credentials.json: https://developers.google.com/calendar/api/guides/concepts/auth
Вот пошаговая инструкция для получения credentials.json:
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- В боковом меню найдите "APIs & Services" → "Enabled APIs & services"
- Нажмите "+ ENABLE APIS AND SERVICES"
- Найдите "Google Calendar API" и включите его
- Перейдите в "Credentials" (в боковом меню)
- Нажмите "CREATE CREDENTIALS" → "OAuth client ID"
- Выберите "Desktop app"
- Нажмите "CREATE"
- Скопируйте credentials.json в корень проекта
откройте файл .public_env и переименуйте его в .env!
Пройдемся по файлу .env и заполним все поля:
Замените на токен своего бота
Замените на ID канала, в который будут приходить логи бота
Бота нужно добавить в канал и сделать его администратором.
Чтобы узнать ID канала, нужно переслать любое сообщение из канала в @LeadConverterToolkitBot
ВАЖНО: ID канала должен быть отрицательным, например -1002328687465
Замените на ID календарей, в которые будут приходить бронирования ID календаря можно узнать в настройках календаря в Google Calendar
Замените на ID стикера, который будет отправляться во время загрузки бронирования ID стикера можно узнать в настройках стикера в телеграм или отправив его в @LeadConverterToolkitBot
Замените на "local" или "server"
- Выполняется стандартный процесс аутентификации через браузер.
- Генерируется файл token.pickle.
- Позволяет повторно создавать токен при необходимости.
-
Сначала сгенерируйте файл token.pickle локально для этого просто запустите бот локально и дождитесь завершения аутентификации (она пройдет через браузер)
-
Загрузите файл token.pickle на сервер Аутентификация через браузер не выполняется команда для загрузки файла на сервер:
scp token.pickle username@your_server_ip:/path/to/your/project/
Вы также можете изменить иконки календаря вот значения по умолчанию:
- Прошедшая дата: ✖️
- Сегодняшняя дата: ⭕️
- Даты с прошедшими бронированиями: ✔️
- Время, которое занято: 🔴
- Брони пользователя: ⭐️
установите русскую локализацию в системе (например, ubuntu)
sudo apt-get update && sudo apt-get install language-pack-ru && sudo locale-gen ru_RU.UTF-8pip install -r requirements.txtpython my_telebot.pyили
(чтобы бот работал в фоновом режиме)
python my_telebot.py &(для запуска внутри screen)
screen -dmS booking_telebot python my_telebot.py-
создадим файл
booking_telebot.serviceважно, файл должен находиться в директории/etc/systemd/system/ -
добавим в него следующий текст:
[Unit]
Description=Booking Telegram Bot
After=multi-user.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/path/to/your/project
ExecStart=/usr/bin/python3 /path/to/your/project/my_telebot.py
Restart=always
[Install]
WantedBy=multi-user.target- перезапустим сервис
sudo systemctl daemon-reload && sudo systemctl enable booking_telebot.service && sudo systemctl start booking_telebot.service- проверим статус сервиса
sudo systemctl status booking_telebot.service- проверим логи сервиса
sudo journalctl -u booking_telebot.service -fтакже можно остановить сервис
sudo systemctl stop booking_telebot.serviceи удалить сервис
sudo systemctl disable booking_telebot.service && sudo systemctl remove booking_telebot.service