如何使用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不同。

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

您是否查看了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-字符串->按钮的文本。如果没有使用任何可选字段,则当按下按钮时,它将作为消息发送到机器人程序。