Добавить в корзинуПозвонить
Найти в Дзене
Nuances of programming

Создаем Telegram-бота с помощью Node.js за 3 минуты

Начало работы
В первую очередь нужно зарегистрировать бота. Сделать это можно в приложении Telegram через BotFather .
Нажмите Start в чате и просмотрите доступные варианты.
Оглавление

Источник: Nuances of Programming

Начало работы

В первую очередь нужно зарегистрировать бота. Сделать это можно в приложении Telegram через BotFather .

-2

Нажмите Start в чате и просмотрите доступные варианты. Вам понадобится выбрать название для бота и имя пользователя, а затем можно сохранять ключ.

После этого бот начнет отображаться в поиске Telegram  —  для этого просто введите @<bot-username> . Однако пока никаких действий выполнять он не будет.

Переходим к коду. Для работы с API Telegram воспользуемся пакетом NPM. Устанавливаем его с помощью команды yarn add node-telegram-bot-api .

Пакет готов к работе. Добавляем токен в переменную:

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

const token = 'YOUR_TELEGRAM_BOT_TOKEN'
const bot = new TelegramBot(token, { polling : true })

Теперь можно приступать к настройке бота. Ниже показан простой пример:

onText позволяет реагировать на сообщения, соответствующие регулярным выражениям. В этом варианте /\/echo (.+)/ означает, что вам нужно написать /echo , а следом за ним какой-либо текст.

Переменная chatId представляет ID пользователя, который используется для отправки сообщения. Чтобы бот мог самостоятельно выполнять эту функцию, ID должны где-то храниться.

bot.sendMessage применятся для отправки сообщений. Строка resp посылается после команды echo . Бот отправляет обратно то, что он получает.

Запускаем node app.js , открываем чат с ботом и отправляем ему следующее.

-3

Автоматическая отправка сообщений

Как было сказано выше, чтобы отправлять пользователям сообщения, понадобится chatId , который нужно где-то хранить. В приложениях для этого стоит выбрать энергонезависимые хранилища, такие как MySQL, MongoDB и любые другие базы данных.

В этом примере мы будем хранить идентификаторы в массиве. Пользователь может зарегистрироваться в боте с помощью /register . После этого он будет получать сообщения.

Бот отправляет сообщение каждому пользователю один раз в секунду. Для этого достаточно пройтись по массиву с циклом for .

После отправки /register боту мы начинаем получать много спама.

Реакция на все сообщения

bot.onText позволяет реагировать на сообщения, соответствующие регулярному выражению. Чтобы обрабатывать любой входящий текст, нужно воспользоваться bot.on("message")  —  он запускается каждый раз, когда кто-то отправляет сообщение.

Вот простой пример. Бот реагирует на каждое сообщение, но отвечает, только когда пользователь присылает текст “dog”.

Отправка опросов

В Telegram можно обменивать не только стикерами, видео и текстом, но и опросами. Создавать их очень просто.

bot.sendPoll(chatId, 'Is Telegram great?' , [‘Sure’, ‘Of course’])

Сразу после ID мы передаем вопрос, а затем идет массив возможных вариантов ответов. Вы можете добавить больше опций по желанию.

Telegram-бот, созданный с помощью Node.js, готов.

Читайте также:

Читайте нас в Telegram , VK

Перевод статьи Louis Petrik : How To Build a Telegram Bot With Node.js in Under 3 Minutes