Как получить текст предыдущего сообщения с ботом Telegram? - PullRequest
0 голосов
/ 29 декабря 2018

Я создаю бот, ориентированный на ответную клавиатуру, используя java, и мне нужно, чтобы он по-разному относился к двум сценариям, в которых текст последнего сообщения совпадает на основе текста предыдущего сообщения.Как я могу получить или сохранить текст предыдущего сообщения как открытую переменную?

Мое концептуальное моделирование выглядит следующим образом:

У меня есть большой оператор If-Else-If, где условие длякаждый блок If идет по линиям if(update.hasMessage() && messageText.equals("aaa")), где «aaa» - это некоторый текст, который появляется на клавиатуре ответа, которая всплывала ранее для пользователя (так как кнопки клавиатуры отправляют на них строку в виде текста, и для опции нетсобытие нажатия кнопки в API бота Telegram).messageText определяется как update.getMessage (). getText ().

Я хочу, чтобы код по-разному обрабатывал два сценария, в которых messageText одинаков на основании сообщения, которое было до него.if(update.hasMessage() && messageText.equals("aaa") && previousMessage.equals("bbb")) { } else if(update.hasMessage() && messageText.equals("aaa") && previousMessage.equals("ccc")){}.Как сохранить предыдущее сообщение, чтобы оно не обновлялось после получения нового сообщения?

1 Ответ

0 голосов
/ 29 декабря 2018

Существует множество шаблонов, которые вы можете использовать для контроля состояния пользователей, но в качестве простого трюка, который я сделал с моим ботом telegram, вы можете генерировать данные следующего сообщения на основе текущего ответа на сообщение.Например, когда пользователь отправляет «aaa» в качестве первого ответа на сообщение, и вы хотите сгенерировать следующее сообщение, вы можете добавить данные первого сообщения к его обратному вызову, например: «aaa, bbb», а когда вызывает API, вы замечаете, что предыдущее сообщение было"ааа", разделив данные обратного вызова с ','.

...