MaxMessenger.Bot
0.2.6-alpha
See the version list below for details.
dotnet add package MaxMessenger.Bot --version 0.2.6-alpha
NuGet\Install-Package MaxMessenger.Bot -Version 0.2.6-alpha
<PackageReference Include="MaxMessenger.Bot" Version="0.2.6-alpha" />
<PackageVersion Include="MaxMessenger.Bot" Version="0.2.6-alpha" />
<PackageReference Include="MaxMessenger.Bot" />
paket add MaxMessenger.Bot --version 0.2.6-alpha
#r "nuget: MaxMessenger.Bot, 0.2.6-alpha"
#:package MaxMessenger.Bot@0.2.6-alpha
#addin nuget:?package=MaxMessenger.Bot&version=0.2.6-alpha&prerelease
#tool nuget:?package=MaxMessenger.Bot&version=0.2.6-alpha&prerelease
Max.Bot — C# библиотека для Max Messenger Bot API
Полнофункциональная библиотека для работы с Max Messenger Bot API на .NET 9. Проект фокусируется на типобезопасности, удобстве интеграции и масштабируемости корпоративных ботов.
📌 Основные возможности
- Асинхронный
MaxClientс полной реализацией REST-эндпоинтов Max Messenger. - Модульные API-клиенты (
BotApi,MessagesApi,ChatsApi,UsersApi,FilesApi,SubscriptionsApi) и строгие модели данных. - Надёжный HTTP-стек c retry/backoff, логированием, обработкой rate-limit и ошибок сети.
- Два механизма получения обновлений: long polling и безопасный webhook конвейер.
- Полная XML-документация всех публичных типов + автотесты, проверяющие наличие комментариев.
⚡ Быстрый старт
dotnet add package MaxMessenger.Bot
using Max.Bot;
using Max.Bot.Configuration;
using Max.Bot.Types.Enums;
var client = new MaxClient(new MaxBotOptions
{
Token = Environment.GetEnvironmentVariable("MAX_BOT_TOKEN")!,
DispatchAllowedUpdateTypes = new[] { UpdateType.Message }
});
var me = await client.Bot.GetMeAsync();
Console.WriteLine($"Hello from {me.Username}");
await client.Messages.SendMessageAsync(
chatId: 1234567890,
text: "It works! ✅");
✅ Полноценные примеры (echo-бот, команды, кнопки, файлы) живут в examples/Max.Bot.Examples и доступны как RunAsync() сценарии.
🧠 Архитектурные ориентиры
- Telegram.Bot — структура клиента, подход к документации и примерам.
- VkNet — богатые модели, расширяемые API и контроль ошибок.
Полный roadmap находится в DEVELOPMENT_PLAN.md.
🧪 Тесты и качество
dotnet build -warnaserror— проверяет, что все публичные API имеют XML-доки.dotnet test— >400 модульных тестов, включаяDocumentationCoverageTestsи проверки сериализации.- GitHub Actions workflow
.github/workflows/ci.yml(Ubuntu + Windows) гоняет форматирование,dotnet format analyzers, покрытие (>70 % линий, целимся в 85 %) иdotnet pack, загружая артефакты для ревью. - Smoke-тесты для примеров используют
LoopbackSampleRuntimeи проходят весьSampleRegistry, повторяя подход Telegram.Bot и VkNet к офлайн-интеграциям, чтобы код примеров и документация не расходились. - Фикстуры API (
tests/Max.Bot.Tests/Integration/Fixtures) помогают детерминированно воспроизводить ответы/subscriptionsи/updatesбез реального HTTP.
🚀 Release Flow
- Обновите
CHANGELOG.md, при необходимости скорректируйте версию вsrc/Max.Bot/Max.Bot.csproj. - Выполните локальный прогон
dotnet format --verify-no-changes,dotnet format analyzers --verify-no-changes --no-restoreиdotnet test -c Release /p:CollectCoverage=true. - Создайте тег
vX.Y.Z(SemVer) и запушьте его. - Workflow
.github/workflows/release.ymlповторно выполнит сборку/тесты, упакует с/p:ContinuousIntegrationBuild=trueи отправит.nupkg/.snupkgна NuGet через секретNUGET_API_KEY. - После зелёного workflow проверьте запись на NuGet.org и оформите GitHub Release. Подробный чеклист в
RELEASING.md.
📚 Документация
- Автогенерируемый XML-файл:
src/Max.Bot/bin/Debug/net9.0/Max.Bot.xml(включён в NuGet). - Официальный Max Messenger API: dev.max.ru/docs-api (локальная копия —
docs/max-api-docs/). - Другие реализации для сравнения и проверки совместимости:
- TypeScript — max-bot-api-client-ts
- Go — max-bot-api-client-go
🔐 Аутентификация
Библиотека использует заголовок Authorization: <token> для аутентификации, как указано в официальной документации MAX API. Токен передаётся через заголовок, а не через query-параметры (старый способ больше не поддерживается API).
✅ Совместимость
Реализация проверена на соответствие официальной документации MAX API и поддерживает совместимость с реализациями на TypeScript и Go. Все модели типов используют snake_case для JSON-полей, соответствующих API, а query-параметры также используют snake_case согласно документации.
🧩 Примеры
| Проект | Описание |
|---|---|
EchoBotExample |
Минимальный echo-бот, показывает базовый цикл обработки. |
CommandBotExample |
Командный роутер (inspired by Telegram.Bot CommandHandlers). |
KeyboardBotExample |
Reply/inline клавиатуры + работа с callback query. |
FileBotExample |
Загрузка и отправка файлов, пересылка медиа. |
Каждый пример конфигурируется через переменные окружения (MAX_BOT_TOKEN, MAX_WEBHOOK_URL, и т.д.) и не хранит секреты в исходниках.
📦 Установка
- Установите .NET 9 SDK.
- В проекте выполните:
dotnet add package MaxMessenger.Bot - Создайте
MaxClientвручную или зарегистрируйте через DI (например, в ASP.NET Core). - Токен и webhook URL держите в Secret Manager/Key Vault. Добавьте
.env/секретные файлы в.gitignore.
🧭 Дорожная карта
- ✅ Подготовка инфраструктуры
- ✅ Базовый HTTP клиент
- ✅ Базовые модели данных
- ✅ Core API методы
- ✅ Расширенные модели
- ✅ Полный API Max
- ✅ Обработка событий (polling + webhook)
- ✅ Документация, примеры, README
- ✅ CI/CD и публикация
- ⏳ Доработки по отзывам
🤝 Как внести вклад
- Форкните репозиторий и создайте ветку (
feature/awesome-bot). - Соберите и протестируйте (
dotnet build -warnaserror,dotnet test). - Обновите
CHANGELOG.md+ соответствующие разделы документации/примеров. - Откройте PR, указав связанные задачи и изменения API.
📝 Лицензия
Apache License 2.0 — см. LICENSE.
Версия: 0.2.5-alpha (Phase 10)
Статус: Активная разработка
Контакты: issues/PR в репозитории
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Options (>= 9.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.1-alpha | 253 | 12/23/2025 |
| 0.4.0-alpha | 134 | 12/23/2025 |
| 0.3.9-alpha | 130 | 12/23/2025 |
| 0.3.8-alpha | 133 | 12/23/2025 |
| 0.3.7-alpha | 131 | 12/23/2025 |
| 0.3.6-alpha | 129 | 12/23/2025 |
| 0.3.5-alpha | 135 | 12/22/2025 |
| 0.3.4-alpha | 133 | 12/22/2025 |
| 0.3.3-alpha | 135 | 11/27/2025 |
| 0.3.2-alpha | 144 | 11/25/2025 |
| 0.3.1-alpha | 134 | 11/25/2025 |
| 0.3.0-alpha | 138 | 11/24/2025 |
| 0.2.7-alpha | 143 | 11/24/2025 |
| 0.2.6-alpha | 139 | 11/24/2025 |
| 0.2.5-alpha | 140 | 11/24/2025 |
| 0.2.4-alpha | 139 | 11/23/2025 |
| 0.2.3-alpha | 94 | 11/23/2025 |
| 0.2.2-alpha | 353 | 11/18/2025 |
| 0.2.1-alpha | 340 | 11/17/2025 |
| 0.2.0-alpha | 342 | 11/17/2025 |
See CHANGELOG.md for details.