Использование переменной сеанса на других промежуточных программах для телеграфа - PullRequest
0 голосов
/ 12 апреля 2020

Я строю проект, предназначенный для самообучения, карточную игру, управляемую 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()

Я действительно могу создать игру, но я не могу сохранить переменную, чтобы можно было ее ввести, я получаю неопределенное значение. Кто-нибудь знает, как это можно реализовать?

Заранее спасибо

...