morfiscam
@morfiscam
Developer bot in Discord and design

Vk | javascript Как привязать кнопку к действию?

Код будет ниже. У меня есть кнопки, но я не понимаю, как к ним привязать действие.
те "Контакты", пользователю писало нужный текст и появлялась кнопка "назад" и тому подобное. Могу выполнить этим же способом, bot.hear, но хочу сделать нормальный код, а не говнокод. Учусь только писать, возникли трудности.
bot.hear(/Начать/i, msg => {
    let keyboard = Keyboard
    .keyboard([[
        Keyboard.textButton({
            label: '☎ Контакты',
            color: 'primary'
        }),
        Keyboard.textButton({
            label: ' Адрес',
            color: 'primary'
        })
    ], [
        Keyboard.textButton({
            label: 'Позвать менеджера ',
            color: 'negative'
        }),
    ]]);
    msg.send({ 
        message: 'Чем могу помочь? ', 
        keyboard: keyboard, 
        random_id: getRandomId() 
    })
})


Так-же вот метод про который я говорил выше. Если делать этим методом, то как упомянуть пользователя? Как убрать всплывающую ссылку возле сообщения?
bot.hear(/☎ Контакты/i, msg => {
    let keyboard = Keyboard
    .keyboard([[
        Keyboard.textButton({
            label: '⏪ Вернуться назад',
            color: 'primary'
        }),
    ]]);
    msg.send({ 
        message: '☎ Номер: +7 (995) номер\nНаш Telegram: ссылка\n\n@ид(Константин) - Писать по воросам партнерства и качества',
        keyboard: keyboard, 
        random_id: getRandomId() 
    })
})
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
https://negezor.github.io/vk-io/ru/guide/keyboard....

Если кнопка внизу, (не под сообщением), то нажатия, по идеи, считываются обработчиком сообщений

вот нашел такой код
vk.updates.use(async (context, next) => { //прослушка сообщений
    if (!context.senderId) // Если отсуствует id отправителя - выйти
        return;
    if (context.senderId < 0) // Если сообщение не из лс с ботом - выйти
        return;
    if (context.isGroup) // Если сообщение от группы - выйти
        return;
    if (context.is('message') && context.isOutbox) // Если сообщение исходящее - выйти
        return;
    console.log('[' + await getFirstName(context.senderId) + ']: ' + context.text);
    await next(); // Продолжить промежуточный код
});
    vk.updates.hear(/!помощь/i, async(context) => {
        await context.reply(`Команд нету`);
    });


получается, в vk.updates.hear первым аргументом засовывай текст кнопки (точь в точь), а ниже то что будет происходить при нажатии
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект