Для реализации отправки сообщений между пользователями в анонимном чате на Telegram с использованием Node.js, Telegraf и mysql2, вам потребуется несколько шагов.
Шаг 1: Создание базы данных MySQL
Вам необходимо создать базу данных MySQL, в которой будут храниться все сообщения между пользователями. Вы можете использовать инструмент командной строки, такой как MySQL Shell или phpMyAdmin для создания базы данных.
Шаг 2: Установка зависимостей
Установите необходимые зависимости для вашего проекта. Откройте терминал и выполните следующую команду:
npm install telegraf mysql2
Шаг 3: Инициализация проекта
Создайте новый файл index.js и инициализируйте ваш проект. Включите необходимые зависимости и настройте токен бота Telegram. Ваш файл может выглядеть примерно так:
const Telegraf = require('telegraf'); const mysql = require('mysql2'); const bot = new Telegraf('YOUR_TELEGRAM_BOT_TOKEN'); const connection = mysql.createConnection({ host: 'localhost', user: 'YOUR_MYSQL_USERNAME', password: 'YOUR_MYSQL_PASSWORD', database: 'YOUR_DATABASE_NAME' });
Шаг 4: Настройка обработчиков команд
Создайте обработчики команд для вашего бота. Эти обработчики будут реагировать на различные команды, отправленные пользователями. Например:
// Обработчик команды /start bot.start((ctx) => { const chatId = ctx.update.message.chat.id; const username = ctx.update.message.from.username; // Добавляем пользователя в базу данных connection.query('INSERT INTO users (username, chat_id) VALUES (?, ?)', [username, chatId], (err, results) => { if(err) { console.error(err); } }); ctx.reply('Добро пожаловать в анонимный чат! Отправьте /help для получения дополнительной информации.'); }); // Обработчик команды /help bot.help((ctx) => { ctx.reply('Ваше сообщение будет доставлено всем активным пользователям. Используйте /stop для выхода из чата.'); }); // Обработчик команды /stop bot.command('stop', (ctx) => { const chatId = ctx.update.message.chat.id; // Удаляем пользователя из базы данных connection.query('DELETE FROM users WHERE chat_id = ?', [chatId], (err, results) => { if(err) { console.error(err); } }); ctx.reply('Вы вышли из чата. Для возврата используйте команду /start.'); }); // Обработчик текстовых сообщений bot.on('text', (ctx) => { const chatId = ctx.update.message.chat.id; const message = ctx.update.message.text; // Получаем список активных пользователей connection.query('SELECT * FROM users WHERE chat_id != ?', [chatId], (err, results) => { if(err) { console.error(err); } // Отправляем сообщение всем активным пользователям results.forEach((row) => { bot.telegram.sendMessage(row.chat_id, `Анонимное сообщение от пользователя ${chatId}: ${message}`); }); }); });
Шаг 5: Запуск бота
Запустите ваш бот, вызвав метод bot.launch()
:
bot.launch();
Теперь вы можете отправлять сообщения в анонимный чат с помощью вашего Telegram-бота. Когда вы отправляете сообщение, оно будет доставлено всем активным пользователям, которые зарегистрированы в базе данных.
Это лишь пример реализации анонимного чата на Telegram с использованием Node.js, Telegraf и mysql2. Вы можете дополнить его и настроить под свои потребности, добавив дополнительные функции, такие как хранение истории сообщений, фильтрация сообщений и т.д.