47 lines
1.4 KiB
Markdown
47 lines
1.4 KiB
Markdown
# Быстрый старт — BotPages
|
||
|
||
Эта инструкция поможет запустить и протестировать проект локально.
|
||
|
||
Требования
|
||
- .NET 8 SDK
|
||
- Токен Telegram (если используете Telegram-адаптер)
|
||
|
||
Сборка
|
||
```bash
|
||
dotnet build
|
||
```
|
||
|
||
Запуск демонстрации
|
||
1. Откройте проект `Demo`.
|
||
2. Внесите токен Telegram (если используется) в код инициализации адаптера или в переменные окружения проекта Demo.
|
||
3. Запустите:
|
||
```bash
|
||
dotnet run --project Demo
|
||
```
|
||
|
||
Пример конфигурации приложения
|
||
```csharp
|
||
var app = new BotPagesApp(stateStorage, logger)
|
||
.AddAdapter("telegram", new TelegramAdapterSetup("<token>"))
|
||
.AddDefaultPage<WelcomePage>()
|
||
.MapCommand<WelcomePage>("/start")
|
||
.AddMiddleware(new LoggingMiddleware(logger));
|
||
|
||
await app.Build(CancellationToken.None);
|
||
```
|
||
|
||
Как написать страницу
|
||
- Наследуйте `StatefulPage` для страниц с пер-сессионным состоянием.
|
||
- Наследуйте `SingletonPage` для одноэкземплярных страниц.
|
||
- Переопределите `OnEnter`, `OnUpdate`, `OnText`, `OnButton`, `OnFile`, `OnError` по необходимости.
|
||
- Для автоматического маппинга маршрутов используйте `AutoMapRoute()`.
|
||
|
||
Тестирование команд
|
||
- Команды регистрируются в `BotPagesApp.MapCommand`.
|
||
- Шаблон команд поддерживает именованные и опциональные аргументы: `/cmd {a} {b?}`.
|
||
|
||
Подсказки
|
||
- Middleware выполняются в том порядке, в котором их добавляют в `BotPagesApp`.
|
||
- Команды имеют приоритет над обработкой страниц (если текст начинается с `/`).
|
||
|
||
Если требуется подробный справочник API — смотрите `docs/API_REFERENCE.md`. |