Bucketlab.Telebot 0.0.7

There is a newer version of this package available.
See the version list below for details.
dotnet add package Bucketlab.Telebot --version 0.0.7
                    
NuGet\Install-Package Bucketlab.Telebot -Version 0.0.7
                    
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="Bucketlab.Telebot" Version="0.0.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bucketlab.Telebot" Version="0.0.7" />
                    
Directory.Packages.props
<PackageReference Include="Bucketlab.Telebot" />
                    
Project file
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 Bucketlab.Telebot --version 0.0.7
                    
#r "nuget: Bucketlab.Telebot, 0.0.7"
                    
#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 Bucketlab.Telebot@0.0.7
                    
#: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=Bucketlab.Telebot&version=0.0.7
                    
Install as a Cake Addin
#tool nuget:?package=Bucketlab.Telebot&version=0.0.7
                    
Install as a Cake Tool

Bucketlab.Telebot

NuGet Downloads License: MIT .NET

Bucketlab.Telebot — простой и понятный клиент Telegram Bot API для .NET. Забираешь токен у BotFather, подключаешь пакет — и через 10 строк кода у тебя живой бот.

Библиотека делает одно и делает это хорошо: превращает вызовы Telegram Bot API в обычные C#-методы с нормальными типами. Никакой магии, никаких dynamic, никакой ручной сборки multipart-запросов.

Почему Bucketlab.Telebot

  • Тонкий слой над API — методы называются как в документации Telegram (SendMessageAsync, SendPhotoAsync, SetWebhookAsync), учить нечего.
  • Типобезопасно — параметры и ответы описаны C#-типами, IDE подсказывает поля, компилятор ловит опечатки.
  • Работает с файлами из коробки — отправляй фото по file_id, по URL или загружай поток, транспорт сам разберётся с multipart.
  • Одно исключение на все ошибки — TelebotException с кодом, ловится в одном catch.
  • Ноль зависимостей сверху — только System.Net.Http и System.Text.Json, никакого DI-контейнера, никаких обязательных фреймворков.
  • .NET 9, nullable enabled — современный C# без легаси.

Установка

dotnet add package Bucketlab.Telebot

Быстрый старт: эхо-бот

using Telebot;
using Telebot.Models;

var bot = new Telegram("BOT_TOKEN");
var offset = 0;

while (true)
{
    var updates = await bot.GetUpdatesAsync(
        new GetUpdatesRequestParams(Offset: offset, Timeout: 30),
        CancellationToken.None
    );

    foreach (var update in updates)
    {
        offset = update.UpdateId + 1;

        if (update.Message?.Text is not { } text)
            continue;

        await bot.SendMessageAsync(
            new SendMessageRequestParams(
                ChatId: update.Message.Chat.Id,
                Text: $"Echo: {text}"
            ),
            CancellationToken.None
        );
    }
}

Запусти — и бот отвечает на любое сообщение.

Кнопки под сообщением

Инлайн-клавиатура — двумерный массив: внешний уровень задаёт ряды, внутренний — кнопки в ряду. Ниже — сообщение с тремя кнопками в раскладке [[A, B] [C]]: первый ряд из двух кнопок, второй — из одной.

using Telebot;

var bot = new Telegram("BOT_TOKEN");

var keyboard = new InlineKeyboardMarkup(new[]
{
    new[]
    {
        new InlineKeyboardButton("A", CallbackData: "choice:a"),
        new InlineKeyboardButton("B", CallbackData: "choice:b"),
    },
    new[]
    {
        new InlineKeyboardButton("C", CallbackData: "choice:c"),
    },
});

await bot.SendMessageAsync(
    new SendMessageRequestParams(
        ChatId: 123456789,
        Text: "Привет! Выбери один из вариантов",
        ReplyMarkup: keyboard
    ),
    CancellationToken.None
);

CallbackData вернётся в апдейте callback_query, когда пользователь нажмёт кнопку. Помимо инлайн-клавиатуры доступны ReplyKeyboardMarkup, ReplyKeyboardRemove и ForceReply — все реализуют IReplyMarkup и подставляются в то же поле ReplyMarkup.

Опросы

Опрос описывается вопросом и списком вариантов ответа (2–10 штук). Каждый вариант — отдельный InputPollOption.

using Telebot;

var bot = new Telegram("BOT_TOKEN");

await bot.SendPollAsync(
    new SendPollRequestParams(
        ChatId: 123456789,
        Question: "Какой язык лучше для CLI-утилит?",
        Options: new[]
        {
            new InputPollOption("Go"),
            new InputPollOption("Rust"),
            new InputPollOption("C#"),
            new InputPollOption("Python"),
        }
    ),
    CancellationToken.None
);

Метод вернёт Message с уже заполненным Poll — оттуда можно взять poll.Id, если нужно потом закрыть опрос или отследить голоса.

Что уже поддерживается

Метод Описание
getMe информация о боте, проверка токена
getUpdates long-polling новых событий
sendMessage отправка текстовых сообщений
sendPhoto отправка фото (file_id / URL / поток)
sendPoll отправка опросов
setWebhook регистрация webhook-URL

Список будет расти — методы добавляются по мере необходимости.

Обработка ошибок

try
{
    await bot.SendMessageAsync(
        new SendMessageRequestParams(ChatId: 123, Text: "hi"),
        CancellationToken.None
    );
}
catch (TelebotException ex)
{
    Console.WriteLine($"{ex.Code}: {ex.Message}");
}

Лицензия

MIT © Bucketlab

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

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.0.75 101 8/10/2026
0.0.74 101 8/10/2026
0.0.73 98 8/7/2026
0.0.72 102 8/6/2026
0.0.71 102 8/6/2026
0.0.7 107 8/6/2026
0.0.6 113 8/4/2026
0.0.5 109 8/3/2026
0.0.4 106 8/3/2026
0.0.3 105 5/13/2026
0.0.2 99 5/13/2026