Проект был создан, чтобы решить задачу направления заявок от пользователей к IT-отделу через Telegram бота. Для удобства пользователя выбран формат TgWebApp.
Проект разрабатывался 2 дня, и в реальном времени является "игрушечной" mvp моделью, однако уже интегрирован и успешно выполняет функционал, для которого был создан.
- Blazor Server-Side (в частности библиотека Radzen)
- Telegram WebApp (в частности js, который требует Tg, и библиотека Telegram.Bot)
- MVC для отображения страниц в WebView телеграмма
- EntityFramework
- JWT Bearer для авторизации пользователей Tg.
- Ввод имени пользователя до старта WebView
- Авторизация tg пользователей по коду, по принципу белого листа.
- Авторизация в Blazor.
- Бан Лист
- Представление задач в виде матрицы Эйзенхауэра
- Ручная обратная связь в чат с пользователем
- Загрузка фото на сервер
- Создайте бота, через BotFather
- Установите токен в appsettings.json
- Сгенерируйте секретный токен
- Укажите адрес вашего сервера, для регистрации WebHook-а на стороне Telegram.
- Используйте ngrok и получите доменное имя.
- Направьте перенаправления на локальный порт приложения
- Обновите "HostAddress" в appsettings.json на выданный в ngrok адрес.
Зависит от используемого обратного прокси и ОС. Не забудьте установить способ хранения DataProtectionKeys. Для сервера Ubuntu использую
builder.Services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"ваш_путь_до_папки_хранения_ключей"));
WebView Телеграмма в светлой теме
WebView Телеграмма в темной теме
Формат сообщений-уведомлений в чате