Telegram bot виды кнопок

DailyDev

Ну чтож, продолжим допиливать нашего бота. Сегодня я расскажу как сделать кнопки для вашего телеграм бота. Давайте начнем!

Идея моего бота изначально заключалась в том, что он должен напоминать мне об уроках, которые я с трудом берусь выполнять. Для того чтобы реализовать это я сделаю главное меню где вы можете включить или отключить уведомления, а также служебную кнопку о которой вы узнаете позже.

Начнем кодить

Для начала следует понять что существует 2 вида кнопок: те которые присылаются в сообщении, и те которые находятся в клавиатуре.

Начнем с кнопок в сообщениях. Один из способов создания таких кнопок это зубчатый массив объектов класса InlineKeyboardButton. Для удобства я создал отдельный класс Keyboard который будет обеспечивать работу с клавиатурой и в нем создал такой метод:

class Keyboard < public static InlineKeyboardMarkup GetKeyBoard() < var kbrd = new InlineKeyboardMarkup(new InlineKeyboardButton[][] < new [] < InlineKeyboardButton.WithCallbackData(» Создать ежедневные напоминания», «createAlert») >, new[] < InlineKeyboardButton.WithCallbackData(» Отлючить все уведомления», «cancelAlert») >, new[] < InlineKeyboardButton.WithCallbackData(» Служебное», «adminka») >>); return kbrd; > >

Данный статический метод возвращает объект типа InlineKeyboardButton который необходим для отправки сообщения с кнопками.

ВСЕ ВИДЫ КНОПОК | AIOGRAM | TELEBOT | TELEGRAM

Хочу обратить ваше внимание что в конструктор этого класса передается зубчатый массив объектов типа InlineKeyboardMarkup. Напомню виды массивов:)

Метод InlineKeyboardButton.WithCallbackData принимает 2 аргумента: описание кнопки и так называемый параметр «callback data», о нем мы поговорим чуть позже.

Для того чтобы сохранять все наши данные создадим классы Data и BotUser которые будут помогать нам работать с данными.

[Serializable] class Data < public Listusers; public class BotUser < public string Name < get; set; >public int UserID < get; set; >public long ChatID < get; set; >public string LastMessageTime < get; set; >public bool notificationEn < get; set; >public string phoneNum < get; set; >> public static void SaveData(Data data) < string serializedData = JsonConvert.SerializeObject(data); if (serializedData != null) < string[] str = new string[1]; str[0] = serializedData; if (!System.IO.File.Exists(«data.txt»)) System.IO.File.Create(«data.txt»); System.IO.File.WriteAllLines(«data.txt», str); >else Console.WriteLine(«»); > public static Data InitData() < if(System.IO.File.Exists(«data.txt»)) < string data = System.IO.File.ReadAllText(«data.txt»); Data parcedData = JsonConvert.DeserializeObject(data); return parcedData; > else return null; > >

Еще по теме:  Предложение о том как передают Телеграммы

В этом классе реализованы два метода которые позволяют сохранить и проинициализировать сохраненные данные. Как же сохранить объект класса в файл? Для этого я решил использовать библиотеку Newtonsoft.Json которая позволяет сериализовать объект в json строку. Затем, с помощью строчки

Как сделать меню для Телеграм Бота на Python


System.IO.File.WriteAllLines(«data.txt», str);

Рейтинг
( Пока оценок нет )
Загрузка ...