如何使用C#使Telegram bot API中的键盘按钮消息文本与其标题不同
本文关键字:文本 消息 按钮 标题 键盘 何使用 Telegram bot API | 更新日期: 2023-09-27 17:58:22
我需要我的机器人打印一条不同于其标题的消息(通过电报客户端在键盘按钮元素上显示)。
我的自定义按钮有这样的文本:"Where am I?"
,当我点击它时,它也会在屏幕上打印"Where am I?"
。我想让按钮打印"/location"
。(与text
字段不同)
我怎样才能做到这一点?我正在使用C#
和Telegram Bot API
编辑:
我想要什么:
- 当用户单击此按钮时,telegram客户端发送带有
/age
的消息[作为其键入的消息],但NOT发送show my age
(即按钮text
字段)
所以:我想要一个带text
的按钮。当用户单击按钮时,我希望发送的消息与text
不同。
您是否查看了InlineKeyboardMarkup而不是ReplyKeyboardMarkup
?它解决了你的问题。
UPD
的基本用途
public static InlineKeyboardMarkup TestInlineKeyboard { get; } = new InlineKeyboardMarkup
{
InlineKeyboard = new []{new[] {new InlineKeyboardButton("Text1","Data1"), new InlineKeyboardButton("text1","data2")} }
};
其中"Text1"
和"text1"
是内联按钮的标题,"Data1"
和"data2"
是CallbackQuery
文本,当用户单击内联按钮时,您的机器人程序将收到该文本。
注意,当用户点击内联按钮时,机器人不会向用户发送任何消息。如果您需要在那一刻发送任何消息,您可以通过编程来完成。
有一个用于位置的布尔字段,您是否将其设置为true?https://core.telegram.org/bots/api#keyboardbutton
更新:当您向用户发送回复时,也会发送ReplyKeyboardMarkup。ReplyKeyboardMarkup有一个名为keyboard的字段,它是KeyboardButton数组的数组。在每个KeyboardButton上,你都有一个位置bool,如果你想让该按钮发送位置,你需要将其设置为true
更新2
不可能有与您的文本不同的消息。text-字符串->按钮的文本。如果没有使用任何可选字段,则当按下按钮时,它将作为消息发送到机器人程序。