Модуль 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