Как создать эхо-бота на grammY
Уровень сложности: 1 из 10
Что вы изучите: методы .on()
и .reply()
Задача
Создать простого Telegram-бота, который будет возвращать пользователю тот же текст, который тот ему отправил. Такой бот называется эхо-ботом.
Шаг 1: Подготовка окружения
Перед началом работы убедитесь, что на вашем компьютере установлены:
- Node.js
- npm (пакетный менеджер для JavaScript)
Если всё готово, перейдите к следующему шагу.
Шаг 2: Создание проекта
Откройте терминал или командную строку и выполните следующие команды:
mkdir echo-bot
cd echo-bot
npm init -y
npm install grammy
Эти команды создадут новую папку, перейдут в неё и установят библиотеку grammy
.
Шаг 3: Получение токена для бота
Для запуска бота в Telegram вам понадобится уникальный токен. Чтобы его получить:
- Откройте Telegram.
- Найдите @BotFather.
- Используйте команду
/newbot
и следуйте инструкциям. - В результате BotFather выдаст вам токен, похожий на этот:
123456789:ABCdefGhiJKLmnoPQRstuVWXyz
.
Сохраните его — он понадобится при запуске бота.
Шаг 4: Написание кода
Создайте файл bot.js
внутри папки echo-bot
. Вставьте в него следующий код:
const { Bot } = require("grammy");
// Создаем экземпляр бота
const bot = new Bot("ВАШ_ТОКЕН_ЗДЕСЬ");
// Обрабатываем входящие сообщения
bot.on("message", async (ctx) => {
// Отвечаем тем же текстом, который получил бот
await ctx.reply(ctx.message.text);
});
// Запускаем бота
bot.start();
Не забудьте заменить "ВАШ_ТОКЕН_ЗДЕСЬ"
на реальный токен, полученный от BotFather.
Шаг 5: Запуск бота
В терминале выполните:
node bot.js
Если всё прошло успешно, бот начнёт работу. Перейдите в Telegram, откройте диалог с вашим ботом и отправьте любое текстовое сообщение. Бот должен ответить тем же текстом.
Объяснение кода
Метод .on()
Метод .on(event, handler)
используется для подписки на события, происходящие в Telegram. В данном случае мы используем событие "message"
, которое срабатывает при любом сообщении, полученном ботом.
Метод .reply()
Метод ctx.reply(text)
позволяет отправить текстовое сообщение в чат, откуда было получено исходное сообщение. Это удобный способ ответить пользователю без необходимости указывать chat_id вручную.
Полезный совет
Если при запуске возникает ошибка Invalid token
, проверьте, правильно ли вы ввели токен. Убедитесь, что вы не добавили лишние пробелы или случайные символы.