KmsDev.MaxBot
1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package KmsDev.MaxBot --version 1.0.0
NuGet\Install-Package KmsDev.MaxBot -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KmsDev.MaxBot" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KmsDev.MaxBot" Version="1.0.0" />
<PackageReference Include="KmsDev.MaxBot" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KmsDev.MaxBot --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: KmsDev.MaxBot, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package KmsDev.MaxBot@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KmsDev.MaxBot&version=1.0.0
#tool nuget:?package=KmsDev.MaxBot&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MaxBot C#
Быстрый старт
Подключение пакета
dotnet add package KmsDev.MaxBot
Подключение MaxBotSystem
using KmsDev.MaxBot.Full;
serviceCollections.AddMaxBotSystem();
Создание MaxBotClient
//получить client builder
var maxBotClientBuilder = serviceProvider.GetRequiredService<IMaxBotClientBuilder>();
//создание бота:
//на основе БОТ_ТОКЕН создается `botHash` с использованием `System.IO.Hashing.XxHash3.HashToUInt64`
//(опционально - рекомендуется вторым параметром добавить `seed` фразу)
var maxBot = maxBotClientBuilder.Build(БОТ_ТОКЕН);
LongPolling
Вызов AddLongPollingManager добавляет в DI интерфейс IMaxBotManager
using KmsDev.MaxBot.Full;
//подключение основной системы
serviceCollections.AddMaxBotSystem(sc =>
{
//подключение LongPolling
sc.AddLongPollingManager();
});
Так же ознакомьтесь с Route Handlers
WebHook
- В разработке
Route Handler
Использование api
Бот разделен на секции в соотвествии с api документацией
реализовано:
Api.BotsApi.SubscriptionsApi.UploadApi.Messages
в разработке:
Api.Chats
пример использования api:
using KmsDev.MaxBot.Full.Requests;
using KmsDev.MaxBot.Full.Models;
var response = await maxBot.Api.Messages.SendMessageAsync(new SendMessageRequest
{
Target = (SendMessageRequest.TargetType.User, {USER_ID}),
Text = "тест сообщение",
}.WithInlineKeyboardAttachment
(
[
new ApiOutputInlineKeyboardCallbackButton
{
Text = "тест кнопка",
Payload = "test_button"
}
]
));
Системная информация
Подключен пакет Microsoft.Extensions.Http.Resilience
- для всех ботов и api запросов используется один RateLimiter pipeline для ограничения в 30rps к серверу
- для каждого api запроса индивидуально добавлен Retry и Timeout pipeline (можно задавать свои лимиты при вызове api)
- для некоторых запросов (например SendMessage с 'attachment.not.ready') используется свой уникальный pipeline, детально в
MaxBotRequestsConfigurer
Подключен пакет OneOf
- для поддержки Union types
- в планах перейти на C#14 unions
Подключен пакет Metalama.Framework
- для Source Generation в ядре
- для DI чтобы пользователя каждый раз не заставлять в конструкторе добавлять системные контракты, Metalama будет сама генерировать нужный
- в планах добавить Source Generation для json converters и тд...
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Metalama.Extensions.DependencyInjection (>= 2026.0.20)
- Metalama.Framework (>= 2026.0.20)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Http (>= 8.0.1)
- Microsoft.Extensions.Http.Resilience (>= 8.10.0)
- OneOf (>= 3.0.271)
- Polly (>= 8.6.6)
- System.IO.Hashing (>= 8.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on KmsDev.MaxBot:
| Package | Downloads |
|---|---|
|
KmsDev.MaxBot.Handlers
MaxBot Client Message Handlers Extensions |
|
|
KmsDev.MaxBot.LongPollingManager
MaxBot Client LongPolling Manager Extensions |
GitHub repositories
This package is not used by any popular GitHub repositories.