如何添加内联按钮,导致此代码示例不起作用?
var keyboard = new InlineKeyboardMarkup
(
new InlineKeyboardButton[][]
{
// First row
new InlineKeyboardButton[] {
// First column
InlineKeyboardButton("one","callback1"),
// Second column
InlineKeyboardButton("two","callback2"),
},
}
);
答案 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
)
}
}
);