Клиент для работы с HTTP API MAX на .NET.
Библиотека упрощает интеграцию с ботами MAX и закрывает основные сценарии:
- получение информации о боте;
- отправка и чтение сообщений;
- работа с чатами и участниками;
- WebHook-подписки и long polling;
- получение ссылки для загрузки файлов, загрузка медиа и получение информации о видео;
- ответы на callback.
netstandard2.0netstandard2.1
После публикации пакета в NuGet:
dotnet add package FT.MAXMessengerNamespace библиотеки:
using FT.MAXMessenger;using FT.MAXMessenger;
var client = new MaxClient("<access-token>");var me = await client.GetMe();
Console.WriteLine($"Bot: {me.Name} (@{me.Username})");
chatIdв этой библиотеке рассматривается какstring.
var message = await client.SendMessage(new MaxSendMessageRequest
{
ChatId = "<chat-id>",
Text = "Привет из .NET"
});var messages = await client.GetMessages(new MaxMessagesQuery
{
ChatId = "<chat-id>",
Count = 20
});var result = await client.CreateSubscription(new MaxCreateSubscriptionRequest
{
Url = "https://example.com/max/webhook"
});var updates = await client.GetUpdates(new MaxUpdatesQuery
{
Limit = 100,
Timeout = 30
});using System.IO;
var upload = await client.CreateUpload(new MaxCreateUploadRequest
{
Type = MaxUploadTypes.Video
});
using var stream = File.OpenRead("movie.mp4");
var payload = await client.UploadFile(upload.Url, stream, "movie.mp4", "video/mp4");
var messageWithAttachment = await client.SendMessage(new MaxSendMessageRequest
{
ChatId = "<chat-id>",
Text = "Видео из .NET",
Attachments = new[]
{
new MaxAttachment
{
Type = MaxUploadTypes.Video,
Payload = payload
}
}
});Поддерживаемые типы загрузки:
MaxUploadTypes.ImageMaxUploadTypes.VideoMaxUploadTypes.AudioMaxUploadTypes.File
В библиотеке уже реализованы разделы API:
BotsMessagesAnswersSubscriptions and updatesFiles and mediaChats
Полный список методов см. в файле src/FT.MAXMessenger/API_METHODS.md.
GetMe()
GetMessages(...)SendMessage(...)EditMessage(...)GetMessage(...)
AnswerCallback(...)
GetSubscriptions()CreateSubscription(...)DeleteSubscription(...)GetUpdates(...)
CreateUpload(...)UploadFile(...)GetVideo(...)
GetChats(...)GetChat(...)UpdateChat(...)DeleteChat(...)SendChatAction(...)GetPinnedMessage(...)SetPinnedMessage(...)DeletePinnedMessage(...)GetMyChatMembership(...)LeaveChat(...)GetChatAdmins(...)AddChatAdmins(...)RemoveChatAdmin(...)GetChatMembers(...)AddChatMembers(...)RemoveChatMember(...)
Интеграционные тесты находятся в проекте FT.MAXMessenger.Tests.
Для запуска нужно настроить секреты:
dotnet user-secrets set "MAX:AccessToken" "<access-token>" --project .\tests\FT.MAXMessenger.Tests\FT.MAXMessenger.Tests.csproj
dotnet user-secrets set "MAX:TestChatId" "<chat-id>" --project .\tests\FT.MAXMessenger.Tests\FT.MAXMessenger.Tests.csprojДополнительно можно использовать переменные окружения:
MAX_API_TOKENMAX_TEST_CHAT_ID
Официальная документация MAX API:
https://dev.max.ru/docs-api