Как вызвать inline button для бота? Не появляется кнопка, в чём может быть причина? Пишу на C#

Вот код классов InlineKeyboard и InlineKeyboardButton:

public class InlineKeyboard
{
    public List<List<InlineKeyboardButton>> inline_keyboard { get; set; }

    public InlineKeyboard(List<List<InlineKeyboardButton>> inlineKeyboard)
    {
        inline_keyboard = inlineKeyboard;
    }
}

public class InlineKeyboardButton
{
    public string text { get; set; }
    //public string url { get; set; }
    public string callback_data { get; set; }
    public InlineKeyboardButton(string _text, string _callback_data = "")
    {
        text = _text;
        callback_data = _callback_data == "" ? _text : _callback_data;
    }
}

А здесь методы которые используются для работы:

        {
            InitializeComponent();
            Init();
        }

        private void Init()
        {
            client = new WebClient();
            //InitProxy();
            timerUpdates.Enabled = true;
        }

        //private void InitProxy()
        //{
        //    WebProxy proxy = new WebProxy();
        //    proxy.Credentials = new NetworkCredential();
        //    client.Proxy = proxy;
        //}

        private void timerUpdates_Tick(object sender, System.EventArgs e)
        {
            GetUpdate();
        }

        /// <summary>
        /// Процедура получения обновления.
        /// </summary>
        private void GetUpdate()
        {
            string address = BaseUrl + token + "/getUpdates?offset=" + (LastUpdateID + 1);
            string data = client.DownloadString(address);
            TeleMessage newMessage = JsonConvert.DeserializeObject<TeleMessage>(data);

            if (!newMessage.ok || newMessage.result.Length == 0) return;
            foreach (Result item in newMessage.result)
            {
                LastUpdateID = item.update_id;
                WriteLog(item.message.text);
                SendAnswer(item.message.chat.id, item.message.text);
            }

        }

        private void WriteLog(string text)
        {
            textBoxLog.Text += DateTime.Now + " " + text + Environment.NewLine;
        }


        private void SendAnswer(long chat_id, string message)
        {
            string answer = "";

            switch (message.ToLower())
            {
                case "/start":
                    answer = "Я вас категорически приветствую. Есть вопросы? - Пиши сюда: /help";
                    break;
                case "/help":
                    answer = "чем тебе помочь?";
                    break;
                case "menu2":
                    InlineMenu(chat_id); return;
                case "/menu":
                    MyMenu(chat_id); return;
                default:
                    answer = "Выражайся понятно пожалуйста, внатуре!";
                    break;

            }
            SendMessage(chat_id, answer);
        }

        private void SendMessage(long chat_id, string message, string replyMarkup = "")
        {
            string address = BaseUrl + token + "/sendMessage";
            NameValueCollection nvc = new NameValueCollection();
            nvc.Add("chat_id", chat_id.ToString());
            nvc.Add("text", message);

            if (replyMarkup != "")
                nvc.Add("replyMarkup", replyMarkup);

            client.UploadValues(address, nvc);
        }

        private void MyMenu(long chat_id)
        {
            string address = BaseUrl + token + "/sendMessage";
            NameValueCollection nvc = new NameValueCollection();
            nvc.Add("chat_id", chat_id.ToString());
            nvc.Add("text", "check menu");

            //List<string> keyboardButton1 = new List<string>()
            //{
            //    "/start",
            //    "/help"
            //};


            List<List<string>> keyboard7 = new List<List<string>>();

            DateTimeFormatInfo fi = new DateTimeFormatInfo();

            for (int i = 1; i <= 12; i++)
            {
                List<string> keyboardButton7 = new List<string>()
                {
                    fi.GetMonthName(i)
                };
                keyboard7.Add(keyboardButton7);
            }

            //TeleButtons buttons = new TeleButtons(keyboard7);
             RemoveButtons r_buttons = new RemoveButtons();
            string replyMarkup = JsonConvert.SerializeObject(r_buttons);

            nvc.Add("reply_markup", replyMarkup);
            client.UploadValues(address, nvc);
           
        }

        private void InlineMenu(long chat_id)
        {
            InlineKeyboardButton key1 = new InlineKeyboardButton("url_1", "google.com");
            InlineKeyboardButton key2 = new InlineKeyboardButton("url_2", "nice-host.com");

            List<InlineKeyboardButton> keyboardButtons = new List<InlineKeyboardButton>()
            {
                key1,
                key2
            };

            List<List<InlineKeyboardButton>> keyboard = new List<List<InlineKeyboardButton>>() { keyboardButtons };
            InlineKeyboard buttons = new InlineKeyboard(keyboard);

            string replyMarkup = JsonConvert.SerializeObject(buttons);
            
            SendMessage(chat_id, "inline menu", replyMarkup);

        }

При отправке боту сообщения 'menu2' должно появляться сообщение inline menu с двумя кнопками, но появляется только сообщение. В чём может быть проблема? Может подскажете хороший курс для написания бота. Спасибо за терпимость к ошибкам. Буду благодарен за конструктивную критику и полезные советы.


Ответы (0 шт):