如何使用C#使Telegram bot API中的Keyboard Button消息文本与其标题不同
我需要我的机器人打印与其标题不同的消息(通过键盘按钮元素上的电报客户端显示)。
我的自定义按钮有这样的文字: "Where am I?"
当我点击它时,它会在屏幕上打印出"Where am I?"
也。 我希望按钮打印"/location"
。(与text
字段不同)
我怎样才能实现它? 我正在使用C#
和Telegram Bot API
编辑:
我想要的是:
- 当用户单击此按钮时,电报客户端发送带有
/age
[作为其输入消息]的消息,但不发送show my age
(即该按钮text
字段)
所以:我想要一个带text
的按钮。 当用户点击按钮时,我希望发送的消息与该text
不同。
有一个布局字段用于位置,您是否将其设置为true? https://core.telegram.org/bots/api#keyboardbutton
更新:如果你正在向用户发送回复,那么你也在发送一个ReplyKeyboardMarkup。 ReplyKeyboardMarkup有一个名为keyboard的字段,它是KeyboardButton数组的数组。 在每个KeyboardButton上,如果您希望该按钮发送位置,则需要设置为true的位置布尔值
更新2
消息不可能与您的文本不同。 text- String->按钮的文本。 如果没有使用任何可选字段,则在按下按钮时它将作为消息发送到机器人
你看过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文本。 请注意,当用户单击内联按钮时,bot不会向用户发送任何消息。 如果您需要在那一刻发送任何消息 – 您可以通过编程方式执行此操作。