Inline Keyboard для telegram бота?
Как увеличить количество смены информации. Я не знаю как поменять программу, чтобы можно было перелистнуть больше чем на "информация 3" и чтобы при нажатии кнопки назад, включался предыдущий текст
Программа
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Telegram.Bot;
using Telegram.Bot.Args;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;
namespace Kursovay
{
class Program
{
public static Update update;
private static string token = "6076917754:AAGOVbcsiACsncM23Fknvr3u67JkmAfpNhE";
private static TelegramBotClient botClient;
static void Main(string[] args)
{
botClient = new TelegramBotClient(token);
botClient.OnMessage += Bot_OnMessage;
var me = botClient.GetMeAsync().Result;
Console.Title = me.Username;
botClient.OnMessageEdited += Bot_OnMessage;
botClient.StartReceiving(Array.Empty<UpdateType>());
Console.WriteLine($"Start listening for @{me.Username}");
Console.ReadLine();
botClient.StopReceiving();
}
private static async void Bot_OnMessage(object sender, MessageEventArgs e)
{
if (e.Message.Type == MessageType.Text)
{
if (e.Message.Text == "/start")
{
await botClient.SendTextMessageAsync(e.Message.Chat.Id, "Здравствуйте, вас привествует телеграм бот по изучению языка программирования C Sharp. Выбирите необходимый блок для изучения:" + "\nСначала /first" + "\nСинтаксис /syntax" + "\nТипы данных и использование /data_types" + "\nУправляющие конструкции /Control_structures" + "\nМассивы и строки /arrays_and_strings" + "\nФункции и процедуры /functions_and_procedures" + "\nФайлы /files");
}
if (e.Message.Text == "/syntax")
{
InlineKeyboardMarkup myInlineKeyboard = new InlineKeyboardMarkup(
new InlineKeyboardButton[][]
{
new InlineKeyboardButton[] // First row
{
InlineKeyboardButton.WithCallbackData( //Second column
"Назад", // Button Name
"CallbackQuery1" // Answer you'll recieve
),
InlineKeyboardButton.WithCallbackData( //Second column
"Далее", // Button Name
"CallbackQuery2" // Answer you'll recieve
)
}
}
);
// Отправляем сообщение с кнопками inline
await botClient.SendTextMessageAsync(e.Message.Chat.Id, "информация1", replyMarkup: myInlineKeyboard);
botClient.OnCallbackQuery += async (object sc, CallbackQueryEventArgs ev) =>
{
if (ev.CallbackQuery.Data == "CallbackQuery1")
{
// Изменяем текст сообщения на "Текст сообщения - Назад"
await botClient.EditMessageTextAsync(
chatId: ev.CallbackQuery.Message.Chat.Id,
messageId: ev.CallbackQuery.Message.MessageId,
text: "информация2",
replyMarkup: myInlineKeyboard);
}
else if (ev.CallbackQuery.Data == "CallbackQuery2")
{
// Изменяем текст сообщения на "Текст сообщения - Далее"
await botClient.EditMessageTextAsync(
chatId: ev.CallbackQuery.Message.Chat.Id,
messageId: ev.CallbackQuery.Message.MessageId,
text: "информация3",
replyMarkup: myInlineKeyboard);
}
};
if (e.Message.Text == "/data_types") { }
if (e.Message.Text == "/control_structures") { }
if (e.Message.Text == "/arrays_and_strings") { }
if (e.Message.Text == "/functions_and_procedures") { }
if (e.Message.Text == "/control_structures") { }
if (e.Message.Text == "/files") { }
}
}
}
}
}
Источник: Stack Overflow на русском