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

    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 первым аргументом засовывай текст кнопки (точь в точь), а ниже то что будет происходить при нажатии
    Ответ написан
    1 комментарий
  • Как исправить ошибку взаимодействия?

    @megaf1re
    Я так понял, у тебя выполняется код при нажатии на кнопку, но отображается эта ошибка.
    Просто она требует ответа.

    Кнопка обрабатывается ивентом InteractionCreate у каждого взаимодействия есть свойство, в случае кнопки - interaction.isButton(). Чтобы обработать конкретную кнопку, нужно проверить её айди, который ты указываешь при создании кнопки
    if(interaction.isButton()) {
            if(interaction.customId == 'idmember') {
                    await interaction.reply('reply');
            }
    }


    Если тебе не нужно засорять чат от ответа взаимодействия кнопки, то просто используй await interaction.deferUpdate(). Или ты можешь вывести туда полезную инфу, например, как в твоем случае "Пользователь member забанен"
    Ответ написан
    Комментировать