如何使用C#删除(不隐藏)Telegram.Bot中的ReplyKeyboardMarkup?

时间:2017-09-01 07:13:50

标签: c# keyboard bots telegram

我在C#中使用 Telegram.Bot 库来开发电报机。

我使用SendTextMessageAsync()方法发布短信并发送了一个键盘:

bot.SendTextMessageAsync(chatId, "sample msg", ParseMode.Default, false, false, 0, new InlineKeyboardMarkup(keyboardData));

我想在点击其中一个键盘按钮上的任何用户后删除(不隐藏)键盘,所以我使用了这个说明:

int msgId = bot.SendTextMessageAsync(chatId, "sample msg", ParseMode.Default, false, false, 0, new InlineKeyboardMarkup(keyboardData)).Result;
...
bot.EditMessageReplyMarkupAsync(chatId, msgId, new ReplyKeyboardRemove());

但它不起作用。请帮我解决一下。

同时如果我在ReplyKeyboardMarkup中将oneTimeKeyboard设置为true,键盘将在用户点击后隐藏,但它不会被删除,只会隐藏,用户可以使用电报的键盘按钮使其可见。

3 个答案:

答案 0 :(得分:0)

您可以使用ReplyKeyboardRemove方法来执行此操作。

答案 1 :(得分:0)

我害怕,为时已晚,但您可以使用ReplyKeyboardRemove

var send = new SendMessage(update.Message.Chat.Id, "your_text")
{
    ReplyMarkup = new ReplyKeyboardRemove() { RemoveKeyboard = true }
};
await bot.MakeRequestAsync(send);

答案 2 :(得分:0)

也许这会对某人有所帮助。

new TelegramBotClient("<token>").SendTextMessageAsync(chat_id, text, replyMarkup: new ReplyKeyboardRemove());