2017-09-01 60 views
1

我正在使用Telegram.Bot庫在C#中用於開發電報機器人。如何刪除(不隱藏)ReplyKeyboardMarkup在Telegram.Bot使用C#?

我發佈使用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

您可以使用ReplyKeyboardRemove方法來做到這一點。

+0

這不是一個方法。它是在EditMessageReplyMarkupAsync()方法或SendTextMessageAsync()中使用的類。如果我在第一種方法中使用它,它不起作用,如果我在第二種方法中使用它,會有額外的消息。 –

+1

請在您的圖書館中打開問題 – Sean

0

恐怕爲時已晚,但可以使用ReplyKeyboardRemove

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