Как менять inline клавиатуру, а не присылать новую?

Есть код:
bot.listen do |message|
case message
when Telegram::Bot::Types::CallbackQuery

one = [
Telegram::Bot::Types::InlineKeyboardButton.new(text: '2', callback_data: 'two'),
Telegram::Bot::Types::InlineKeyboardButton.new(text: '3', callback_data: 'three')
]
onem = Telegram::Bot::Types::InlineKeyboardMarkup.new(inline_keyboard: one)
# Here you can handle your callbacks from inline buttons
if message.data == 'one'
bot.api.editMessageText(chat_id: message.from.id, text: 'one', reply_markup: onem)
end
when Telegram::Bot::Types::Message

kb = [
Telegram::Bot::Types::InlineKeyboardButton.new(text: '1', callback_data: 'one'),
Telegram::Bot::Types::InlineKeyboardButton.new(text: '2', callback_data: 'two'),
Telegram::Bot::Types::InlineKeyboardButton.new(text: '3', callback_data: 'three')
]
startm = Telegram::Bot::Types::InlineKeyboardMarkup.new(inline_keyboard: kb)
if message.text == "/start"
bot.api.send_message(chat_id: message.chat.id, text: 'Выбери число', reply_markup: startm)
end
end
end


В итоге бот присылает новую, а мне нужно чтобы он заменял старую. Как это сделать?
  • Вопрос задан
  • 1641 просмотр
Пригласить эксперта
Ответы на вопрос 1
@nllm
Делать не send_message, а edit_message
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы