如何从电报机器人的键盘输入中获得响应?

时间:2017-01-03 08:48:26

标签: c# bots telegram-bot

我想使用自定义键盘来获取所选的选项。

如何获取所选选项?有什么例子吗?

我的问题由" node-telegram-bot-api"回答。

此处:How to get the response of the keyboard selection?

c#有什么解决方案吗?

2 个答案:

答案 0 :(得分:0)

当您致电SendTextMessageAsync时,您会传递IReplyMarkup对象,该对象指定“自定义回复键盘”。我对Telegram Bot API了解不多,但这看起来与您链接的GitHub问题引用的功能相同。

似乎有several implementations listed in the API documentation。我怀疑InlineKeyboardMarkupReplyKeyboardMarkup是您正在寻找的。

答案 1 :(得分:0)

要创建自定义键盘,您必须发送短信并传递IReplyMarkup。所选选项作为消息发送,可以在OnMessage事件中处理。将ReplyKeyboardHide设置为回复标记时,可以隐藏自定义键盘。

以下是一个例子:

private const string FirstOptionText = "First option";
private const string SecondOptionText = "Second option";

private async void BotClientOnMessage(object sender, MessageEventArgs e)
{
    switch (e.Message.Text)
    {
        case FirstOptionText:
            await BotClient.SendTextMessageAsync(e.Message.Chat.Id, "You chose the first option", replyMarkup:new ReplyKeyboardHide());
            break;
        case SecondOptionText:
            await BotClient.SendTextMessageAsync(e.Message.Chat.Id, "You chose the second option", replyMarkup:new ReplyKeyboardHide());
            break;

        default:
            await BotClient.SendTextMessageAsync(e.Message.Chat.Id, "Hi, select an option!",
                replyMarkup: new ReplyKeyboardMarkup(new[]
                {
                    new KeyboardButton(FirstOptionText),
                    new KeyboardButton(SecondOptionText),
                }));
            break;
    }
}

以下是与自定义键盘的聊天:
enter image description here

这是我点击第一个按钮的聊天:
enter image description here

我希望这有帮助!