如何使用 C# 使键盘按钮消息文本与其在 Telegram bot API 中的标题不同

How to make Keyboard Button message text different from its caption in Telegram bot API using C#

我需要我的机器人打印与其标题不同的消息(由电报客户端在键盘按钮元素上显示)。

我的自定义按钮有这样的文本:"Where am I?",当我点击它时,它也会打印在屏幕上 "Where am I?"。 我希望按钮打印 "/location"。(与它的 text 字段不同的东西)

如何实现?我正在使用 C#Telegram Bot API

编辑:

我想要的:

所以:我想要一个带有 text 的按钮。当用户单击按钮时,我希望发送的消息与 text.

不同

位置有一个布尔字段,你把它设置为真了吗? https://core.telegram.org/bots/api#keyboardbutton

更新: 当您向用户发送回复时,您也发送了一个 ReplyKeyboardMarkup。 ReplyKeyboardMarkup 有一个名为 keyboard 的字段,它是 KeyboardButton 数组的数组。 在每个 KeyboardButton 上,如果您希望该按钮发送位置,则需要将其设置为 true 的位置布尔值

更新 2

消息不可能与您的文本不同。 text- String-> 按钮的文本。如果使用了 none 个可选字段,它将在按下按钮时作为消息发送给机器人

你看过 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 文本,当用户单击内联按钮。

请注意,当用户单击内联按钮时,机器人不会向用户发送任何消息。如果您当时需要发送任何消息 - 您可以通过编程方式进行。