Как получить CallbackData в текущем, когда InlineKeyboardCallbackButton нажал в Telegram Bot в C#

Как я могу получить InlineKeyboardCallbackButton в боте телеграммы?

Вот мой код: я редактировал код

public async System.Threading.Tasks.Task<ActionResult> GetMsgAsync()
     {
     var req = Request.InputStream; 
     var responsString = new StreamReader(req).ReadToEnd(); 
     var update = JsonConvert.DeserializeObject<Update>(responsString);
     var message = update.Message;  
     var chat = message.Chat;  


  InlineKeyboardMarkup categoryInlineMarkup = new 
      InlineKeyboardMarkup(
         new InlineKeyboardButton[][]
                        {
                        new InlineKeyboardButton[]
                            {
                  new InlineKeyboardCallbackButton("button1","callbackData")
                            }
                        }
                           );

                await api.SendTextMessageAsync(update.Message.Chat.Id, "Please click the button", replyMarkup: categoryInlineMarkup);

                if (update.Type == Telegram.Bot.Types.Enums.UpdateType.MessageUpdate)
                {
                    // all codes just run in this block
                }



                if (update.Type == Telegram.Bot.Types.Enums.UpdateType.CallbackQueryUpdate)
                {
                    // I can't get clicked button here 
                    if (update.CallbackQuery.Data.Contains("callbackData"))
                    {
                        await api.AnswerCallbackQueryAsync(update.CallbackQuery.Id, update.CallbackQuery.Data);
                    }
                }


   }

Как я могу получить эту кнопку также в методе webhook, а не в консольной программе?

1 ответ

Решение

Наконец, я узнаю ответ, проблема в этой строке кода:

  var message = update.Message; 

эта строка кода является основной проблемой, потому что эта строка не находится в блоке try catch, и я не могу понять, какая строка является проблемой.

После этой проблемы у меня есть предложение для вас
Вы можете отлаживать своего бота telegram на своем персональном компьютере, не загружая никакого кода на какой-либо хост, для этого вы можете запустить 3 следующих шага:

1- Доступ к сайту IIS Express с удаленного компьютера

2- Скачать NGROK

3- после загрузки ngrok вы можете пересылать запросы telegram webhook на ваш персональный компьютер.

Другие вопросы по тегам