2017-09-01 9 views
1

私は電文のボットを開発するためにC#のテレグラム.Botライブラリを使用しています。C#を使用してTelegram.BotのReplyKeyboardMarkupを(非表示にするために)削除しますか?

私はSendTextMessageAsync()メソッドを使用してテキストメッセージを投稿し、それをキーボードを送った:

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

私は、キーボードの1上の任意のユーザーのクリックした後、(隠さない)キーボードを削除したいですボタンを使用するので、私はこの指示を使用する:

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の方法で使用すると機能しません。第2の方法で使用すると、余分なメッセージが表示されます。 –

+1

図書館で問題を開いてください – Sean

0

私は怖い、それは遅すぎるのですが、あなたはそれが方法ではありませんReplyKeyboardRemove

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