Я пытаюсь использовать TelegrafJS для переключения между разными мастерами по нажатию пользователем кнопки Markup.callbackButton. Кажется, не может быть в состоянии "вызвать" переключение волшебников, несмотря на бесчисленные попытки. Вот что я сделал до сих пор:
const Telegraf = require("telegraf");
const Markup = require("telegraf/markup");
const Stage = require("telegraf/stage");
const session = require("telegraf/session");
const WizardScene = require("telegraf/scenes/wizard");
const bot = new Telegraf(mysecretKey);
const wiz1 = new WizardScene("wizard-1",
ctx => {...},
ctx => {
ctx.reply(
Markup.keyboard([
Markup.callbackButton("Go to Scene 2", "wizard-2"),
]).extra()
)
}
....
);
const wiz2 = new WizardScene("wizard-2",
ctx => {...},
ctx => {
ctx.reply(
Markup.keyboard([
Markup.callbackButton("Go to Scene 1", "wizard-1"),
]).extra()
)
}
....
);
const stage = Stage([wiz1,wiz2]);
bot.use(session());
bot.use(stage.middleware());
bot.startPolling();
// Tried this
bot.action('enterWiz1', Stage.enter('wiz-1')); // nothing happens
bot.action('enterWiz2', Stage.enter('wiz-2')); // nothing happens
// And this
bot.action("enterWiz1", (ctx) => { Stage.enter('wiz-1') }); // nothing happens as well
bot.action("enterWiz2", (ctx) => { Stage.enter('wiz-2') }); // nothing happens as well
И я получаю следующую ошибку TypeError: Cannot read property 'enter' of undefined
Спасибо за помощь, спасибо!