Телеграм бот для отправки пользователю официального курса доллара, евро, фунтов, Белорусского рубля.
Бот отправляет официальный курс валют на выбранный день с сайта ЦБ.
Бот работает асинхронно и взаимодействует с Telegram в режиме polling
(сервер->Telegram) /
webhook
(Telegram->сервер, более быстрая работа, нужен SSL сертификат).
- /start - начать общение с ботом
- /currency - открывается inline-клавиатура с выбором валюты. Бот попросит ввести дату для получения курса валюты.
Сообщение от бота после нажатия inline-кнопки:
- Форкните репозиторий, затем склонируйте.
- Перейдите в папку с проектом:
cd currency-rate-tg-bot
- Добавьте в .env файл токен бота
BOT_TOKEN
, полученный у BotFather. -
- (Рекомендуется) Для работы в режиме polling добавьте в .env
SENDING_TYPE=polling
.
- (Рекомендуется) Для работы в режиме polling добавьте в .env
-
- (Либо) Для взаимодействия с Telegram webhook необходимо настроить SSL сертификат на сервере по
инструкции. Используйте nginx для установки
сертификата. После генерации сертификата создастся 2 файла: privkey.pem и fullchain.pem, которые будут
использоваться при запуске uvicorn. Также добавьте в .env файл
SENDING_TYPE=webhook
и url сервераWEBHOOK_URL
.
- (Либо) Для взаимодействия с Telegram webhook необходимо настроить SSL сертификат на сервере по
инструкции. Используйте nginx для установки
сертификата. После генерации сертификата создастся 2 файла: privkey.pem и fullchain.pem, которые будут
использоваться при запуске uvicorn. Также добавьте в .env файл
- Настройте окружение по инструкции.
- Установите необходимые библиотеки:
pip install -r requirements.txt
- Запустите сервер:
- При работе с polling:
uvicorn app.main:app
- При работе с webhook:
uvicorn app.main:app --host 0.0.0.0 --port $API_PORT --ssl-keyfile privkey.pem --ssl-certfile fullchain.pem
После настройки окружения запустите бота в Docker:
docker-compose up -d --build