Перейти к основному содержимому

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