Telegram бот node js

blПоследнее время начал увлекаться разработкой приложений на Node.JS. Понравился своей гибкостью и тем, что приложения можно писать на JavaScript, а с ним я хоть немного дружу.

Недавно написал скрипт, который следит за активностью группы в ВК. А чуть позже, решил поинтересоваться Telegram API. Дуровы всегда умели делать качественный продукт и Telegram меня обрадовал своей быстротой и возможностью создания своего бота с понятным даже новичку API.

И в этой статье, я коротко расскажу о том, как создать своего бота на Node.JS. Кстати, вот ссылка на репозиторий бота.

Первым делом, нам надо создать своего бота и получить Token. Волноваться вам не стоит насчет тяжести создания бота, для этого у нас есть @BotFather.

Если вы открыли чат с ботом, кликаем на кнопку «Start».

После чего, бот нам выдает все доступные команды.

Отправляем команду /newbot или кликаем по активной ссылке этой команды. Далее, бот нас попросить ввести имя для нашего бота.

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

Я решил во время статьи создать бота для этого блога и конечно назвал бота «Archakov Blog».

И уже на последнем этапе, бот попросит вас придумать никнейм для бота. К никнейму в конце обязательно надо добавить суффикс «bot» можно и «Bot». К сожалению, никнейм поменять больше не получится. Если это ваш первый бот, не парьтесь и придумайте любой никнейм.

В итоге, получаем сообщение о том, что бот создан и в конце будет токен бота. Токен нам и пригодится в процессе разработки.

Не советую делиться токеном с другими людьми. Так как он дает полный доступ к вашему боту. Начиная от редактирования имени, до удаления бота.

Теперь приступим к написанию кода и первым делом установим Node.JS. У меня OS X и хочу предупредить, что от операционной системы не будет зависеть разработка нашего приложения.

Как установить Node.JS рассказывать я не хочу и не буду. Для этого обращаемся к гугл с запросом как установить Node.JS.

После того, как установили Node.JS, начинаем разрабатывать наше приложение, а точней бота. Заранее хочу сказать, что лучше создать отдельную папку для вашего бота и всегда храните модули в одной папке, чтобы не путаться в дальнейшем как я. Node.JS методом иерархии, ищет в каждой папке наличие папки с модулями — node_modules.

Советую поучиться работать с npm командой в консоли. Заранее установите этот менеджер пакетов, он нам скоро пригодится. Кстати, очень крутая и полезная штука, в будущем пригодится. Особенно, когда наступит апокалипсис, будете сидеть и пакеты устанавливать…

Создаем папку с тестовым проектом, к примеру telegram-bot. Далее, в этой папке создаем файл index.js и все! Вы красавчик! Бот создан, можете работать с ним, вы молодец!

Ага, канешна. Код сам не напишется!

Прежде чем его и писать, установим модуль node-telegram-bot-api. Для этого открываем консоль, пропишем путь к директории нашего проекта cd telegram-bot (укажите полный путь к этой папке).

В моем случае, это cd /Applications/MAMP/htdocs/telegram-bot.

Если вы на Windows, советую создавать папку в корне диска, чтобы можно было обращаться к проекту по короче, к примеру cd C:\telegram-bot.

Отлично, теперь не забываем про npm.

В консоли вбиваем команду: npm install node-telegram-bot-api or yarn add node-telegram-bot-api

И через несколько секунд, модуль установился, ура!

В репозитории уже есть пример кода и с помощью этого кода, сделаем своего мега-тру-бота. Теперь перейдем к файлу index.js и напишем немного кода.

В начале кода, мы подключили наш модуля для работы с Telegram API. Далее, в переменной token вставляем наш токен, который выдавал нам бот при создании нашего бота.

Работа с командами очень простая и понятная. Советую вам немного потренироваться еще с регулярными выражениями, правильно составлять команду по маске.

Данный модуль содержит кучу полезных методов. Прочтите документацию в репозитории этого модуля.

Давайте, в качестве моего примера, сделаем напоминалку важных дел. Конечно пример не ахти, но кому-нибудь будет интересно.

У Node.JS все так же (почти), как у нашего любимого языка JavaScript. И можете не бояться работать с ним, немного практики и вы мега-тру-кодер на Node.JS.

Подключаем наш модуль и прописываем токен:

Далее, создаем переменную в которой будут храниться все заметки присланные ей от пользователей.

Добавляем команду /напомни, с помощью которой и будем добавлять напоминание.

  • userId — хранит ID пользователя который прислал сообщение.
  • text — хранит первый параметр — текст. Его бот и должен прислать мне.
  • time — хранит второй параметр — время. Устанавливаем время когда прийдет уведомление.

Сохраняем все эти параметры в наш массив notes и бот отправляет сообщение, что запись успешно сохранилась.

Теперь надо поставить таймер, он будет каждую секунду проверять записи которые совпадают по настоящему времени. Если одно из напоминаний соответствует настоящему времени (часу и минуте), то отправляем пользователю напоминание.

Чтобы вы поняли как работает код выше, я нарисовал схему:

Сохраняем наш скрипт, я назвал reminder.js. Запускаем его через консоль, командой node reminder.js

В итоге, я получил свое ожидаемое напоминание.

Спасибо за внимание. Не ленитесь учить JavaScript, за ним будущее веб и в частности всей галактики! Так же, выкладываю полный файл reminder.js.

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.