如何在ASP Net Telegram Bot中添加Inline按钮?

时间:2018-07-31 13:26:59

标签: c# .net asp.net-web-api telegram-bot

如何添加内联按钮,导致此代码示例不起作用?

var keyboard = new InlineKeyboardMarkup
            (
                new InlineKeyboardButton[][]
                {
                    // First row
                    new InlineKeyboardButton[] {
                        // First column
                        InlineKeyboardButton("one","callback1"),

                        // Second column
                        InlineKeyboardButton("two","callback2"),
                    },
                }
            );

2 个答案:

答案 0 :(得分:2)

您需要做的就是先定义嵌入式键盘,然后在向用户发送任何类型的消息时使用它。要定义嵌入式键盘,您应该在Program类中使用以下代码:

static InlineKeyboardMarkup myInlineKeyboard;

然后在主函数中,您必须使用如下代码:

myInlineKeyboard = new InlineKeyboardMarkup()
{
 InlineKeyboard = new InlineKeyboardButton[][]    
 {
  new InlineKeyboardButton[]                //first row
  {
   new InlineKeyboardButton("option1","CallbackQuery1"),     //first column
   new InlineKeyboardButton("option2","CallbackQuery2")     //second column
  }
 };

最后,要查看嵌入式键盘,您应该在发送消息时使用它。例如,如果您的消息是短信,则可以使用以下代码:

await Bot.SendTextMessageAsync(ChatID, "Your_Text", replyMarkup: myInlineKeyboard);

我已将此代码与 Telegram.Bot API版本13.0.0-beta-01结合使用,并且效果很好。但是,如果您想使用此API的最新版本,则内联键盘的代码有点不同,但与此非常相似。

答案 1 :(得分:1)

我为代码做了一些修补程序,所以你可以复制/粘贴它

InlineKeyboardMarkup myInlineKeyboard = new InlineKeyboardMarkup(

    new InlineKeyboardButton[][]
    {
        new InlineKeyboardButton[] // First row
        {
            InlineKeyboardButton.WithCallbackData( // First Column
                "option1", // Button Name
                "CallbackQuery1" // Answer you'll recieve
            ), 
            InlineKeyboardButton.WithCallbackData( //Second column
                "option2", // Button Name
                "CallbackQuery2" // Answer you'll recieve
            )  
        }
    }
);