TelegramBotMenu 0.0.2
dotnet add package TelegramBotMenu --version 0.0.2
NuGet\Install-Package TelegramBotMenu -Version 0.0.2
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="TelegramBotMenu" Version="0.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TelegramBotMenu --version 0.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TelegramBotMenu, 0.0.2"
#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.
// Install TelegramBotMenu as a Cake Addin
#addin nuget:?package=TelegramBotMenu&version=0.0.2
// Install TelegramBotMenu as a Cake Tool
#tool nuget:?package=TelegramBotMenu&version=0.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
How to use Menu-Extension
First of all, you need to initialize the object of TelegramBotClient and run.
var botClient = new TelegramBotClient(token);
...
var me = await botClient.GetMeAsync();
➡Pagination
Initialize your list of objects
List<MenuButtonModel> buttonModels = new()
{
new MenuButtonModel("Button1", "Button1Value"),
new MenuButtonModel("Button2", "Button2Value"),
new MenuButtonModel("Button3", "Button3Value"),
new MenuButtonModel("Button4", "Button4Value"),
new MenuButtonModel("Button5", "Button5Value"),
new MenuButtonModel("Button6", "Button6Value"),
new MenuButtonModel("Button7", "Button7Value"),
new MenuButtonModel("Button8", "Button8Value"),
new MenuButtonModel("Button9", "Button9Value"),
};
Use GetPaginationInlineKeyboard
method for get InlineKeyboardMarkup and send telegram message
const int columnCount = 2;
const int rowCount = 3;
var replyMenu = botClient.GetPaginationInlineKeyboard(buttonModels, columnCount, rowCount);
await botClient.SendTextMessageAsync(chatId, "YourMessage", replyMarkup: replyMenu);
👆Click button NEXT/PREV
You have to send clickedNavigation
// clickedNavigation - Data from CallbackQuery
var replyMenu = client.GetPaginationInlineKeyboard(buttonModels, columnCount, rowCount, clickedNavigation);
await botClient.EditMessageReplyMarkupAsync(chatId, messageId, replyMenu);
🌳Tree architecture (since version 0.0.2)
In addition to navigation, you can send child elements to the constructor for a tree-like architecture.
var childrenItems = new List<MenuButtonModel>() { new MenuButtonModel("ButtonInside", "InsideData") };
var item = new MenuButtonModel("Button1", "Button1Value", childrenItems);
🔗Static settings
You can change the text of the navigation buttons.
// Default values
public static class Settings
{
public static string ButtonNextText = "»";
public static string ButtonPrevText = "«";
public static string ButtonUpText = "« up";
public const string PaginationData = "toPage";
}
...
// Custom values
Settings.ButtonNextText = "👉";
Settings.ButtonPrevText = "👈";
👀Example of pagination
→ Click Button5 →
For a more detailed analysis, see the TelegramBotMenu.Tests
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Telegram.Bot (>= 17.0.0)
- Telegram.Bot.Extensions.Polling (>= 1.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.