我在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,键盘将在用户点击后隐藏,但它不会被删除,只会隐藏,用户可以使用电报的键盘按钮使其可见。
答案 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());