Бот для записи клиентов и предоставления информации о продуктах и услугах.
- Отправка сообщений с фото, кнопками и ссылками.
- Интерактивное меню с переходами между разделами.
- Возможность записи клиентов через внешнее веб-приложение.
- Просмотр информации о продуктах и услугах с возможностью возвращения в главное меню.
- Быстрый доступ к отзывам, контактам и маршруту до компании.
- Python
- FastAPI
- Python Telegram Bot (версия 20.5)
- Vercel (для маршрутизации)
- Uvicorn (для запуска FastAPI)
client-records-telegram-bot/
│
├── api/
│ └── index.py # Основной файл с кодом бота
├── venv/ # Виртуальное окружение (не добавляйте в Git)
├── .gitignore # Исключение виртуального окружения из репозитория
├── requirements.txt # Зависимости проекта
├── vercel.json # Конфигурация Vercel для маршрутизации
├── README.md # Документация для проекта
└── .env # Переменные окружения (не для публичного репозитория)
git clone https://github.com/your-username/client-records-telegram-bot.git
cd client-records-telegram-bot
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew --version
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/usr/local/bin/brew shellenv)"
Для Windows:
На Windows Homebrew не поддерживается. Вместо этого используйте встроенные инструменты или Chocolatey для установки приложений. Убедитесь, что у вас установлен Python. Если нет, установите его с официального сайта Python.
Linux/MacOS:
brew install python
python3 --version
pip --version
Windows:
Скачайте установщик Python с официального сайта. При установке отметьте галочку "Add Python to PATH". После установки проверьте версию Python в командной строке:
python --version
pip --version
Linux/MacOS:
python3 -m venv venv # Создаем виртуальное окружение в папке `venv`
source venv/bin/activate # Активируем виртуальное окружение (Linux/MacOS)
Windows:
python -m venv venv
venv\Scripts\activate
pip install --upgrade pip # Обновляем `pip` до последней версии (универсально для всех систем)
pip install -r requirements.txt # Устанавливаем зависимости из `requirements.txt`
📦 Установка библиотек:
pip install python-telegram-bot==20.5
pip install fastapi python-dotenv uvicorn
pip freeze > requirements.txt # Сохраняем зависимости
Для подключения Webhooks понадобится публичный HTTPS-адрес. Используем ngrok для создания безопасных туннелей:
Linux/MacOS:
brew install --cask ngrok # Устанавливаем ngrok
ngrok config add-authtoken <YOUR_AUTH_TOKEN> # Добавляем токен
Windows:
- Скачайте ngrok с официального сайта и установите.
- Добавьте ngrok в системный PATH:
- Разархивируйте файл в удобную директорию, например C:\ngrok.
- Добавьте путь в переменную PATH:
- Нажмите Win + R, введите sysdm.cpl.
- Перейдите во вкладку Advanced > Environment Variables.
- В разделе System Variables выберите Path, нажмите Edit, добавьте путь к ngrok.
Проверьте установку:
ngrok version
Конфигурация ngrok:
ngrok config add-authtoken <YOUR_AUTH_TOKEN> # Добавляем токен
-
Запустите локальный сервер FastAPI:
uvicorn api.index:app --reload
-
Запустите ngrok и получите HTTPS-адрес:
ngrok http 8000
-
Настройте Webhook для Telegram:
curl -X POST "https://api.telegram.org/bot<BOT_TOKEN>/setWebhook" -d "url=https://<NGROK_URL>/webhook"
Проверьте статус Webhook:
curl "https://api.telegram.org/bot<BOT_TOKEN>/getWebhookInfo"
Linux/MacOS:
brew install node
node --version
npm --version
npm install -g vercel
Windows: Скачайте последнюю версию Node.js с официального сайта (рекомендуется LTS версия).
node --version
npm --version
npm install -g vercel
vercel login
{
"rewrites": [{ "source": "/(.*)", "destination": "/api/index" }]
}
vercel # Первый деплой
vercel --prod # Повторный деплой
Добавьте переменные окружения в Vercel:
vercel env add BOT_TOKEN
vercel env add APP_URL
Настройте Webhook для Vercel:
curl -X POST "https://api.telegram.org/bot<BOT_TOKEN>/setWebhook" -d "url=https://<VERCEL_URL>/webhook"
Проверьте статус:
curl "https://api.telegram.org/bot<BOT_TOKEN>/getWebhookInfo"