Как подключить сцены в телеграм бота я никак не могу понять в чем моя ошибка?
require('dotenv').config();
const Stage = require('telegraf/stage');
const { enter, leave } = Stage;
const Telegraf = require('telegraf');
const Scene = require('telegraf/scenes/base');
const bot = new Telegraf('token');
// const mongoose = require('mongoose');
const uuid = require('uuid');
const session = require('telegraf/session');
const contactStartScene = require('./scenes/scenecontact');
const curContact = new contactStartScene();
const contactSceneStart = curContact.contactscenes();
bot.use(Telegraf.log());
const stageContact = new Stage([contactSceneStart]);
bot.use(stageContact.middleware());
bot.start(async ctx=>ctx.scene.enter('contact') );
// При подключение сцены пишет что Cannot read property 'enter' of undefined я не могу понять в чем проблема, утыкаюсь в мануал уже третий день ответ найти не могу
const Telegraf = require('telegraf');
const Scene = require('telegraf/scenes/base');
const Stage = require('telegraf/stage');
const {
enter,
leave
} = Stage;
class contactStartScene {
contactscenes() {
const contact = new Scene('contact');
contact.enter((ctx) => {
ctx.replyWithMarkdown("Для того чтобы продолжить введите свой номер", {
reply_markup: {
keyboard: [
[{
text: "Отправить номер",
request_contact: true,
}]
],
resize_keyboard: true,
one_time_keyboard: true
},
});
});
return contact;
}
}
module.exports = contactStartScene;
Ответы (1 шт):
Автор решения: Maksim Kraev
→ Ссылка
Мне кажется у тебя просто enter просто не про инициализировался, так как ты подключаешь библиотеки используя CommonJS, а юзаешь код используя ES6. Выбери, что то одно, редактор конфликтует.
И ошибка такова, что ты не правильно про инициализировал классы с библиотеке Телеграффа, а именно:
const {Telegraf, Scenes} = require("telegraf")
const { enter, leave } = ***Scenes.Stage***
Stage - не объявляется