如何在 telegram .net api 中创建自定义键盘?

how to create custom keyboard in telegram .net api?

if (update.Message.Text == "/hi" || update.Message.Text == "hi")
{
    bot.MakeRequestAsync(new SendMessage(update.Message.Chat.Id, "TEST!")).Wait();
}

telegram api for .net 具有 keyboardmuckup 类型,但在我看到的任何示例中都没有用户。我可以在电报机器人 api 中实现自定义键盘以从按钮而不是命令文本获取用户的命令吗?

绝对是的。你永远不会在代码中看到 ReplyKeyboardMarkup,而是在电报机器人中看到 documnetation。如果您查看此文档,您会看到许多部分(例如 ReplyKeyboardMarkup,每个部分都有一些 Field。您必须发送这些字段(特别是那些 Required 字段)及其值,Telegram会认识到那些没有提及标题的字段(例如标题是 ReplyKeyboardMarkup),您不得在代码中提及这些标题。 你可以在 php here 中看到一个可用的键盘。 一切都像发送消息一样简单,keybords 的要点是使用相互嵌套的三重数组

pseudo code:
keyboard = [[ [key element 1 data] , [key element 2 data] ,[key element 3 data] ]]

在 C# 中你可以这样做:

    using NetTelegramBotApi.Types;
    enter code here

   ReplyKeyboardMarkup myKeyboard = new ReplyKeyboardMarkup()
  {
      Keyboard = new string[][]
      {
         new string[] { "raw1 key1", "raw1 key2","raw1 key3 " },
         new string[] { "raw2 key1", "raw2 key2","raw2 key3 " }

      }
  };

第一个字符串数组显示在第一个原始数组中,第二个数组显示在第二个原始数组中... 您可以通过 sendMessage:

将此键盘发送给用户
var req =new SendMessage(chatId,"Text if you want") { ReplyMarkup = myKeyboard };

await bot.MakeRequestAsync(req);