Модуль Questions
Модуль Question предназначен для отлавливания сообщений в Telegram и передачи их в callback функцию. Это позволяет легко реализовать логику приложения на основе сообщений, которые получает пользователь. Данный модуль также используется в MessageContext, в методе question. Модуль хранится в экземпляре Evogram, в объекте modules (client.modules.questions)
Работа напрямую с модулем необходима когда Вам нужно запросить данные вне команды/события, где передается UserMessageContext. В случаях, если у Вас есть UserMessageContext, используйте встроенный метод question.
Методы
Класс QuestionManager имеет два основных метода, которые необходимы для работы с модулем.
addQuestion(user_id, callback)
Добавляет новый вопрос в очередь для указанного пользователя и связывает его с переданным callback.
Принимает два параметра:
user_id: ID пользователя, который задал вопрос.callback: callback-функция, которая будет вызвана при получении ответа от пользователя.
getQuestion(user_id, deleteQuestion)
Получает callback-функцию, связанную с указанным пользователем, и удаляет ее из очереди, если параметр deleteQuestion установлен true.
Принимает два параметра:
user_id: ID пользователя, чья callback-функция должна быть получена.deleteQuestion: (Необязательно) Флаг, указывающий, следует ли удалить вопрос из очереди после получения callback. По умолчаниюtrue.
Пример использования
Напишем код, который будет запрашивать ответ пользователя и выведем его в консоль.
client.modules.questions.addQuestion(1, (message) => {
console.log(message.text);
message.reply("Спасибо за ваш ответ!");
})
В данном примере client является экземпляром Evogram