Бот для телеграмма, функционал которого представляет 5

Бот для телеграмма, функционал которого представляет 5 кнопок, 1 из кнопок при нажатии показывает статус остальных кнопок нажаты они или нет
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: JavaScript
Создано: 06.04.2025 08:44

Бот для телеграмма, функционал которого представляет 5 кнопок, 1 из кнопок при нажатии показывает статус остальных кнопок нажаты они или нет

Вот пример кода для Telegram-бота на языке JavaScript с использованием библиотеки node-telegram-bot-api. Бот будет иметь 5 кнопок, одна из которых сообщает о статусе остальных кнопок.

const TelegramBot = require('node-telegram-bot-api');

// Замените 'YOUR_TELEGRAM_BOT_TOKEN' на ваш токен
const token = 'YOUR_TELEGRAM_BOT_TOKEN';
const bot = new TelegramBot(token, { polling: true });

// Статус кнопок
let buttonStatus = [false, false, false, false, false];

// Создаем клавиатуру с кнопками
const keyboard = [
    [{ text: 'Кнопка 1', callback_data: 'button1' }],
    [{ text: 'Кнопка 2', callback_data: 'button2' }],
    [{ text: 'Кнопка 3', callback_data: 'button3' }],
    [{ text: 'Кнопка 4', callback_data: 'button4' }],
    [{ text: 'Статус кнопок', callback_data: 'status' }]
];

// Обработчик команды /start
bot.onText(/\/start/, (msg) => {
    const chatId = msg.chat.id;
    bot.sendMessage(chatId, 'Нажмите кнопку:', {
        reply_markup: {
            inline_keyboard: keyboard
        }
    });
});

// Обработчик нажатия на кнопки
bot.on('callback_query', (callbackQuery) => {
    const chatId = callbackQuery.message.chat.id;
    const action = callbackQuery.data;

    switch (action) {
        case 'button1':
            buttonStatus[0] = !buttonStatus[0];
            bot.answerCallbackQuery(callbackQuery.id, { text: 'Кнопка 1 нажата!', show_alert: true });
            break;
        case 'button2':
            buttonStatus[1] = !buttonStatus[1];
            bot.answerCallbackQuery(callbackQuery.id, { text: 'Кнопка 2 нажата!', show_alert: true });
            break;
        case 'button3':
            buttonStatus[2] = !buttonStatus[2];
            bot.answerCallbackQuery(callbackQuery.id, { text: 'Кнопка 3 нажата!', show_alert: true });
            break;
        case 'button4':
            buttonStatus[3] = !buttonStatus[3];
            bot.answerCallbackQuery(callbackQuery.id, { text: 'Кнопка 4 нажата!', show_alert: true });
            break;
        case 'status':
            const statusMessage = `Статус кнопок:\n` +
                                  `Кнопка 1: ${buttonStatus[0] ? 'нажата' : 'не нажата'}\n` +
                                  `Кнопка 2: ${buttonStatus[1] ? 'нажата' : 'не нажата'}\n` +
                                  `Кнопка 3: ${buttonStatus[2] ? 'нажата' : 'не нажата'}\n` +
                                  `Кнопка 4: ${buttonStatus[3] ? 'нажата' : 'не нажата'}`;
            bot.sendMessage(chatId, statusMessage);
            break;
        default:
            break;
    }
});

Описание кода

  1. Импортирование библиотеки: Сначала мы импортируем библиотеку node-telegram-bot-api и создаем экземпляр бота.
  2. Структура кнопок: Определяем пять кнопок в виде массива, включая одну кнопку для проверки статуса.
  3. Обработчик команды /start: При запуске бота пользователю отправляется сообщение с кнопками.
  4. Обработка нажатий на кнопки: Каждое нажатие на кнопки изменяет состояние соответствующей кнопки и, при нажатии на кнопку "Статус кнопок", формирует сообщение, которое отражает текущий статус всех кнопок.

Зависимости

Убедитесь, что у вас установлена библиотека node-telegram-bot-api. Это можно сделать с помощью npm:

npm install node-telegram-bot-api

Запуск

После настройки и запуска бота, вы сможете взаимодействовать с ним через Telegram, используя заданные кнопки.