Я строю проект, предназначенный для самообучения, карточную игру, управляемую API, и играемую часть, которую я хочу выполнять в качестве бота телеграммы.
API генерирует unique_id это необходимо для запроса таблиц и управления текущей игрой. Идентификатор создается, например, для публикации в /new_game
, затем мне нужно ввести текущую игру / текущий сеанс в /{unique_id}/enter_game
.
Я пытаюсь использовать telegraf-inline-menu и переменная сеанса пакетов telegraf , и я пытаюсь реализовать так:
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.use(session())
var localurl = 'http://localhost:3000'
const menu = new TelegrafInlineMenu(ctx => `Hey ${ctx.from.first_name}!`)
const menuEnter = new TelegrafInlineMenu((ctx) => `${ctx.from.first_name} start a game, press the button to enter.`)
menu.setCommand('start')
menu.submenu('Create game?', 'b', menuEnter, {
doFunc: async (ctx) => {
console.log(localurl + '/new_game')
ctx.session.game_id = await axios.post(localurl + '/new_game', {
creator: ctx.from.first_name
}).then(
res => {
return res.data.id
}
)
}
})
menuEnter.simpleButton('Enter Game', 'b', {
doFunc: ctx => {
console.log(localurl + '/' + ctx.session.game_id + '/enter_game')
axios.post(localurl + '/' + ctx.session.game_id + '/enter_game', {
player: ctx.from.first_name
})
}
})
bot.use(menu.init())
bot.launch()
Я действительно могу создать игру, но я не могу сохранить переменную, чтобы можно было ее ввести, я получаю неопределенное значение. Кто-нибудь знает, как это можно реализовать?
Заранее спасибо