Вызывать ctx.scene.next() при событии ответа, а не при событии входа в сцену?
как поймать событие ответа?
Возможно bot.on('poll_answer'), но я точно не знаю
не приходит ответ const regAge = new Scene('Scene1').enter((ctx) => { ctx.replyWithQuiz('1?', ['True', 'False'], { correct_option_id: 0 }) bot.on('poll_answer', async (rq) => { console.log(`rq`, rq) }) //return ctx.scene.next({ age: ctx.message.text }) }) Где ошибка?
Какую ошибку выдаёт?
вообще ошибки нет
А Дак ты обработчик внутри сцены вешаешь
как правильно?
Вешай обработчик на сцену
const regAge = new Scene('Scene1') .enter((ctx) => ctx.replyWithQuiz('1?', ['True', 'False'], { correct_option_id: 0 })) .on('poll_answer', (rq) => ctx.scene.next()) Так? Не работает
const regAge = new Scene('Scene1'); regAge.enter((ctx) => ctx.replyWithQuiz('1?', ['True', 'False'], { correct_option_id: 0 })) regAge.on('poll_answer', (ctx) => ctx.scene.next())
тоже самое. на месте стоит сцена
Изменил ответ. Если не будет работать, то думай дальше сам. Сцены использовал только раз, и то минимально.
да видел там ошибку в ctx. не помогло
Это не poll, а quiz. Может в этом дело?
Вообщем вот так сработало) const regAge = new Scene('Scene1').enter(async (ctx) => { await ctx.replyWithQuiz('1?', ['True', 'False'], { correct_option_id: 0 }) bot.on('poll', () => ctx.scene.next()) })
Обсуждают сегодня