【发布时间】:2020-08-16 02:11:17
【问题描述】:
在使用 Python 编程之后,我目前正在开发 Java TelegramBot。 现在我正在努力解决如何使用机器人进行回复。 以下是部分源代码:
public void reply (Update update) {
String text = update.getMessage().getText();
long chat_id = update.getMessage().getChatId();
int message_id = update.getMessage().getMessageId();
if (text.equals("/reply")) {
SendMessage send = new SendMessage();
send.setText("Reply to the message that you want to be responsed.")
.setChatId(chat_id);
try {
execute(send);
} catch (TelegramApiException e) {
e.printStackTrace();
System.out.println("Oops");
}
if (update.hasMessage() && update.getMessage().hasText() && message_id != update.getMessage().getMessageId()) {
Message reply = new Message();
if (reply.hasReplyMarkup()) {
String response = reply.getText();
send
.setText(response)
.setChatId(chat_id);
}
try {
execute(send);
} catch (TelegramApiException e) {
e.printStackTrace();
System.out.println("Oops");
}
}
}
}
问题是,我如何在聊天中注册下一条消息?通过简单的消息创建对话。我有一个 json,其中的单词与可能的用户输入相匹配。
这是一个相同流程的示例,但在 python 上。
@bot.message_handler(commands=['conversor'])
def conversor(message):
chat_id = message.chat.id
text = ('Puedo convertir las siguientes unidades:\n'
'1 - m --> cm\n'
'2 - m --> mm\n'
'3 - ft --> yardas\n'
'4 - ft --> in\n'
'5 - ft --> cm\n'
'6 - ft --> m\n'
'Solo respondeme al mensaje el numero de opción, separado del valor a convertir.\n')
msg = bot.send_message(chat_id, text=text)
bot.register_next_step_handler(msg, operacion)
def operacion(message):
chat_id = message.chat.id
msg = message.text
answer = str.split(msg)
option = int(answer[0])
value = int(answer[1])
result = functions.bot_conversor(option, value)
bot.send_message(chat_id, result)
我正在使用这个 api:
https://github.com/pengrad/java-telegram-bot-api
谢谢
【问题讨论】:
标签: java python telegram-bot python-telegram-bot