Показать сообщение отдельно
  #1 (permalink)  
Старый 25.04.2022, 00:54
Интересующийся
Отправить личное сообщение для _RedGamer_ Посмотреть профиль Найти все сообщения от _RedGamer_
 
Регистрация: 25.04.2022
Сообщений: 13

Cannot access "users" before initialization
let {
    VK,
    Keyboard
} = require('vk-io')
let vk = new VK({
    token: `токен`
})
let commands = []
vk.updates.start().then(() => console.log(`Запущено!`))
vk.updates.on('message_event', async (message) => {
    const [user_info] = await vk.api.users.get({
        user_ids: message.userId
    })
    console.log(`Беседа #${message.peerId}, id сообщения ${message.conversationMessageId}`)
    const users = users.find(x => x.id === (message.userId))
    if (!users) {
        console.log(`Пользователь не найден :(`);
        return
    }
    if (message.eventPayload.text === 'Ты успешно проверил(а) Callback кнопку') return;
    vk.api.messages.sendMessageEventAnswer({
        event_id: message.eventId,
        peer_id: message.peerId,
        conversation_message_ids: message.conversationMessageId,
        user_id: message.userId,
        event_data: JSON.stringify({
            "type": "show_snackbar",
            "text": `${user_info.first_name}, Ты успешно проверил(а) Callback кнопку`
        })
    })
    return
})
vk.updates.on('message', async (message) => {
    if (message.isOutbox) return;
    if (!message.text) return;
    const command = commands.find(x => x[0].test(message.text));
    console.log(`${message.senderId}, ${message.text}`)
    if (!command) return message.send(`нет такой команды`)
    message.args = message.text.match(command[0]);
    await command[1](message);
})
const cmd = {
    one: (p, f) => {
        commands.push([p, f]);
    }
}
cmd.one(/^(привет)$/i, async (message) => {
    return message.send(`ку`, {
        keyboard: Keyboard.keyboard([])
            .textButton({
                label: 'Нажми на меня',
                color: Keyboard.PRIMARY_COLOR
            })
            .textButton({
                label: 'Нажми на меня2',
                color: Keyboard.POSITIVE_COLOR
            })
            .row()
            .urlButton({
                label: 'Нажми на меня3',
                url: 'https://vk.com/*',
                color: Keyboard.NEGATIVE_COLOR
            })
    })

})
cmd.one(/^(тест)\s(.*)$/i, async (message) => {
    return message.send(`я думаю это ${message.args[2]}`)
})
cmd.one(/^(кнопка)$/i, async (message) => {
    return message.send('Нажми на кнопку ниже..', {
        keyboard: JSON.stringify({
            buttons: [
                [{
                    action: {
                        type: "callback",
                        label: "Проверка Callback",
                        payload: {
                            type: "show_snackbar",
                            text: "Ты успешно проверил(а) Callback кнопку"
                        }
                    },
                    color: "primary"
                }]
            ],
            inline: true
        })
    })
})

Последний раз редактировалось _RedGamer_, 25.04.2022 в 15:10.
Ответить с цитированием