Как управлять своими задачами с помощью телеграм-бота на JS
Telegram - одна из популярных социальных сетей. Большую часть времени проводя в telegram, в какой-то момент я подумала, что было бы удобно управлять своими задачами, не выходя из приложения, просто перейдя из диалога с другом в диалог с ботом.
В данной публикации я расскажу о создании телеграм-бота на JS. В настоящее время популярность телеграм-ботов остается высокой. Хоть большинство ботов и пишут на Python с использованием библиотеки python-telegram-bot, их также можно создавать на JavaScript.
С чего начать?
Одна из популярных библиотек для создания телеграм-ботов на JavaScript — это Telegraf.js (простая и гибкая, облегчает разработку телеграм-ботов на основе JS).
Первое, что нужно сделать при создании телеграм-бота - обратиться к специальному сервису @BotFather (Рис. 1) социальной сети Telegram. После того как я указала адрес и уникальное имя пользователя, которое заканчивается на “bot”, в диалоге с @BotFather, мне предоставили уникальный токен для управления моим телеграм-ботом. Его необходимо хранить в безопасности, чтобы избежать несанкционированный доступ к боту. Если возникнет необходимость, всегда можно изменить токен или настроить другие параметры бота, обратившись к @BotFather.
Создание проекта
У меня уже был установлен Node.JS, поэтому я сразу приступила к инициализации проекта
Затем я установила фреймворк для Node.js, который позволяет разрабатывать веб-приложения, и API-Express.js
Далее я установила библиотеку Telegraf, которую упоминала выше
В отдельный файл config.js для безопасности я вынесла порт сервера и токен, который получила выше.
В файле app.js я реализовала приветствие, которое выводит бот при вводе команды /start (Рис. 2)
Рис. 2 Приветствие телеграм-бота
Требования к боту
Мне было важно, чтобы бот добавлял задачу в перечень не по нажатию кнопки, а при получении сообщения от пользователя при отправке текста боту. Нужно, чтобы он умел выводить список всех задач и удалять, какую мне необходимо. Также я хотела, чтобы была какая-то инструкция для пользователя и по запросу выводилась мотивационная картинка Я создала файл db.js, в котором хранится массив с задачами
Создание клавиатуры
В файле keyboards.js я импортировала класс Markup из модуля telegraf и использовала его для создания клавиатурной разметки с кнопками. Клавиатура автоматически масштабируется под размер экрана пользователя (Рис. 3). Функция getMenu создает клавиатуру с тремя кнопками: "Моя задача", "Добавить задачу" и " Получить мотивацию" (Рис. 4).
Рис. 3 Интерфейс бота
Рис. 4 Ответ бота на нажатие кнопки «Получить мотивацию»
Далее я вернулась в файл app.js. Логично, что функция getMenu должна вызывать при старте бота. Поэтому я ее импортировала и добавила в действие при команде /start.
Реализация логики бота
Перед тем как начинать реализовывать логику бота далее, важно знать, какие методы бывают. Метод hears() вызывает обработчика, который реагирует на введенный текст. А метод reply() содержит ответ бота пользователю.
При добавлении задачи бот дополнительно спрашивает, действительно ли пользователь хочет это сделать. Поэтому в файле keyboards.js я создала клавиатуру с ответами «да» и «нет». И если пользователь отвечает, что да, то выводится сообщение, что задача успешно добавлена.
Также я добавила функции вывода, добавления и удаления для базы данных в файле db.js
Что же делает кнопка «Получить мотивацию»? При нажатии выводятся «рандомные» картинки, которые я храню в папке и подписи, которые хранятся в массиве
Заключение
Созданный телеграм-бот всегда находится под рукой, помогает планировать и управлять повседневными задачами, показывая изображения для мотивации. Это поможет вам сохранять продуктивность на протяжении всего дня. Для управления ботом используется клавиатура, что делает использование приложения максимально простым и интуитивным. Надеюсь, что мой телеграм-бот станет для вас надежным помощником в организации рабочих и личных дел, всегда готовым помочь и поддержать. Полный код: https://github.com/SVErmol/Telegram-bot