FT.MAXMessenger
1.0.6
dotnet add package FT.MAXMessenger --version 1.0.6
NuGet\Install-Package FT.MAXMessenger -Version 1.0.6
<PackageReference Include="FT.MAXMessenger" Version="1.0.6" />
<PackageVersion Include="FT.MAXMessenger" Version="1.0.6" />
<PackageReference Include="FT.MAXMessenger" />
paket add FT.MAXMessenger --version 1.0.6
#r "nuget: FT.MAXMessenger, 1.0.6"
#:package FT.MAXMessenger@1.0.6
#addin nuget:?package=FT.MAXMessenger&version=1.0.6
#tool nuget:?package=FT.MAXMessenger&version=1.0.6
FT.MAXMessenger
Клиент для работы с HTTP API MAX на .NET.
Библиотека упрощает интеграцию с ботами MAX и закрывает основные сценарии:
- получение информации о боте;
- отправка и чтение сообщений;
- работа с чатами и участниками;
- WebHook-подписки и long polling;
- получение ссылки для загрузки файлов, загрузка медиа и получение информации о видео;
- ответы на callback.
Поддерживаемые платформы
netstandard2.0netstandard2.1
Установка
После публикации пакета в NuGet:
dotnet add package FT.MAXMessenger
Namespace библиотеки:
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
});
Создание WebHook-подписки
var result = await client.CreateSubscription(new MaxCreateSubscriptionRequest
{
Url = "https://example.com/max/webhook"
});
Получение обновлений через long polling
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.
Основные возможности MaxClient
Bots
GetMe()
Messages
GetMessages(...)SendMessage(...)EditMessage(...)GetMessage(...)
Answers
AnswerCallback(...)
Subscriptions and updates
GetSubscriptions()CreateSubscription(...)DeleteSubscription(...)GetUpdates(...)
Files and media
CreateUpload(...)UploadFile(...)GetVideo(...)
Chats
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
Документация API
Официальная документация MAX API:
https://dev.max.ru/docs-api
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.4)
-
.NETStandard 2.1
- Newtonsoft.Json (>= 13.0.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.