【发布时间】:2018-07-22 13:18:09
【问题描述】:
我有一个带有内联键盘的机器人。 该机器人有一个带有按钮的文本来下订单。按下机器人后会询问人的姓名,下面有一个取消操作的按钮。 如果我输入人名,我会正确地使用新按钮加载新文本,但旧的取消按钮不会被删除并且仍然可见。 我希望能够在编写文本后删除按钮。
此代码用于插入名称:
String answer = "Insert the Name";
EditMessageText new_message = new EditMessageText()
.setChatId(chat_id)
.setMessageId(message_id)
.setText(answer).setParseMode("HTML");
markupInline = new InlineKeyboardMarkup();
List<List<InlineKeyboardButton>> bottoni_totali = new ArrayList<>();
List<InlineKeyboardButton> riga1 = new ArrayList<>();
riga1.add(createButton("annulla", emoji_annulla+" Annulla"));
bottoni_totali.add(riga1);
// Add it to the message
markupInline.setKeyboard(bottoni_totali);
new_message.setReplyMarkup(markupInline);
try {
execute(new_message);
} catch (TelegramApiException e) {
e.printStackTrace();
}
当我插入姓名时,我会显示姓氏,但旧按钮 CANCEL 可见。
String answer = "Now insert the surname";
sendMessage = new SendMessage().setChatId(update.getMessage().getChatId());
sendMessage.setText(answer).setParseMode("HTML");
markupInline = new InlineKeyboardMarkup();
List<List<InlineKeyboardButton>> bottoni_totali = new ArrayList<>();
List<InlineKeyboardButton> riga1 = new ArrayList<>();
riga1.add(createButton("annulla", emoji_annulla+" Annulla"));
bottoni_totali.add(riga1);
// Add it to the message
markupInline.setKeyboard(bottoni_totali);
sendMessage.setReplyMarkup(markupInline);
try {
execute(sendMessage);
} catch (TelegramApiException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
【问题讨论】:
-
虽然我链接的消息是指其他语言的 API,但它仍然应该有足够的信息来确定一个足够的答案。
-
当我第一次尝试编辑时 - EditMessage(使用 InlineKeyboardMarkup)方法工作正常,但是当我第二次尝试修改此消息时,我得到“错误请求:消息未修改”为什么? ??
标签: java telegram-bot