Стало модно использовать мессенджеры как платформу для, так называемой, «разговорной коммерции»: теперь помимо смузи и коворкинга уважающий себя стартап должен обзавестись ботом или, как минимум, каналом в телеграмме.
В помощь им мы не только написали бота, который ищет лучшие кофе и бургеры в городе, но и статью о том, как мы его разрабатывали.В нашем небольшом туториале мы расскажем о том, как создать бота, настроить в нем графическое меню, редактирование сообщений и отправку текста и фото в одном сообщении.
Зачем бот нам?
Разработка
Создание
- в режиме WebHook сервер Телеграма будет отправлять данные вашему боту, каждый раз при поступлении запроса. Это удобный и надежный вариант, а, главное, быстрый, но, к сожалению, этот режим требует https-подключения и сертификата.
- в режиме polling бот будет сам ходить на сервер Телеграма и забирать новые данные. Этот режим гораздо проще, но реакция бота будет не мнгновенной, а в среднем с полсекундной задержкой. Кроме того, нужно учесть, что иногда бывают сбои в ответе с сервера, поэтому бота следует сделать устойчивым к таким ошибкам.
Запуск бота
Чтобы запустить бота, необходимо подключить пакет и передать боту необходимые данные: токен и режим обновления.
Telegram БОТ на JavaScript за 15 минут. Деплой, База данных, node js telegram bot.
const TelegramBot = require(‘./lib/telegram.js’);
const bot = new TelegramBot(‘YOUR_TOKEN’, );
console.log(‘Hi my name is %s!’, me.username);
Вызов функции getMe() происходит при успешной авторизации токена бота и выдачи управления программе. При этом в качестве аргумента функция getMe().then() принимает функцию function(me). Ее первым аргументом является объект, с помощью которого можно получить различную информацию о вашем боте и, в данном случае, вывести её в консоль.Далее, чтобы научить бота отправлять сообщения, нужно использовать метод bot.sendMessage(chatId, ‘Hello World. ’); А чтобы бот понимал входящие запросы, достаточно использовать bot.on(‘message’, function (msg)<>). Более подробно методы описаны в документации node-telegram-bot-api.
Красивые кнопочки
Чтобы вместо стандартной пользователь видел inline клавиатуру, необходимо при отправке сообщений передать методу sendMessage ее параметры:
Где text — текст на кнопке, callback_data — данные, которые получит бот при нажатии на кнопку.
Соответственно, тобы отловить события нажатия на определенную кнопку, нужно воспользоваться методом.
bot.on(‘callback_query’, function (msg)
if (msg.data === ‘rus’)
if (msg.data === ‘eng’)
Изменение сообщения
Иногда требуется не отправлять заново сообщения, а поправить уже существующее (для удобства отображения данных). Для этого мы решили воспользоваться методом bot.editMessageText(text, opt); где text — измененный текст сообщения, opt — Дополнительные опции для запроса к telegram, такие как наличие клавиатуры, форматирование текста и другое.
Отправка текста и фото в одном сообщении
Стандартный метод sendPhoto не подходит, так как имеет ограничения на количество символов в тексте и другое форматирование – текст пишется под фото. Поэтому мы использовали sendMessage и просто вставили в текст сообщения ссылку на нужную картинку.
Чтобы телеграм подгрузил картинку в сообщение, необходимо установить параметр disable_web_page_preview: false.
Для форматирования текста нужно установить параметр parse_mode. Он имеет два значения: markdown и html. При значении markdown используется форматирование вида:
`inline fixed-width code`
«`pre-formatted fixed-width code block«`
const text = ‘[текст](url)’;
Магазин ботов
Чтобы всю эту красоту увидел мир, а не только ваши пользователи, вы можете написать статью на хабр загрузить вашего бота в магазин ботов – storebot.Регистрация и публикация простая – достаточно залогиниться на сайте storebot.met и после «далее-делее-готово» нажать в меню «AddBot». Это вам не модерация в AppStore.
Бонус для самых классных
Источник: spark.ru
Запуск телеграм бота на javascript через cmd
При разработке любых приложений их приходится тестировать, а значит, инструмент должен быть рабочим. В современных реалиях просто необходимо, чтобы в продакшене находился только рабочий код, соответственно вся разработка должна вестись на локале. Сегодня поговорим о том, как запустить телеграм бота на локальной машине без наличия белого IP, HTTPS сертификата и т.п.
Шаг 1
Первое, что нам понадобится сделать, это зарегистрировать тестового бота в Telegram.
Для этого пишем боту BotFather сообщение
Далее следуем инструкциям и получаем токен для тестового бота, например:
Шаг 2
Для того, чтобы Telegram бот работал, ему надо обращаться к URL по протоколу https и у домена должен быть сертификат. Для решения этой проблемы существует сервис ngrok .
Он позволяет создать туннель с локальной машины к серверу, у которого есть все необходимые сертификаты.
Регистрируемся и авторизуемся на сайте. Прямо на главной странице будет инструкция, что нужно сделать:
- Скачать файл
- Распаковать
- Присоединиться к своему аккаунту
- Запустить туннель на 8000 порту ./ngrok http 8000
Шаг 3
Теперь нужно зарегистрировать бот на сервер ngrok. Надо понимать, что сервер поднимается только тогда, когда запущен туннель и каждый раз это новый сервер, поэтому после перезагрузки туннеля, шаг 3 нужно будет делать заново для продолжения работы с ботом.
Для регистрации бота, нужно пройти по адресу
где OmoTestBot — название тестового бота
Подробнее о установке Webhook можно почитать здесь
Источник: omoroot.ru
Как создать телеграм-бота на Node.js
Телеграм боты стали популярным средством коммуникации и автоматизации задач в сети. Благодаря своей гибкости и простоте использования, они предоставляют возможность разработчикам создавать ботов для различных нужд и целей. В этой статье мы поговорим о том, как создать телеграм бота на node js.
Node js является одной из самых популярных платформ для создания веб-приложений и серверной разработки. Он особенно полезен при создании телеграм ботов, так как обеспечивает высокую производительность и позволяет эффективно работать с API Телеграм.
В данном руководстве мы рассмотрим основные этапы создания телеграм бота на node js. Мы начнем с настройки окружения разработки и установки необходимых инструментов. Затем мы изучим, как создать бота в Телеграм и получить токен доступа, который будет использоваться для взаимодействия с API. Далее мы рассмотрим процесс создания основного функционала бота, такого как обработка команд, отправка сообщений и взаимодействие с пользователем.
Важно отметить, что создание телеграм бота на node js не требует большого опыта в программировании и может быть выполнено даже начинающим разработчиком. Следуя этому пошаговому руководству, вы сможете создать собственного телеграм бота и научить его выполнять нужные вам задачи.
Если вы готовы начать, перейдите к следующему шагу и начните создавать своего телеграм бота на node js!
Установить Node.js
Перед тем как начать создавать телеграм бота на Node.js, вам необходимо установить Node.js на свой компьютер. Вот пошаговая инструкция, как это сделать:
1 | Откройте официальный сайт Node.js |
2 | Скачайте установочный файл для вашей операционной системы |
3 | Запустите скачанный установочный файл и следуйте инструкциям установщика |
4 | После установки, откройте командную строку (терминал) и проверьте, что Node.js установлен, введя команду node -v – вы должны увидеть версию Node.js, если установка прошла успешно |
Поздравляю, теперь у вас установлен Node.js на вашем компьютере, и вы готовы начать создавать телеграм бота на Node.js!
Создать новый проект
Прежде чем мы начнём создавать нашего телеграм бота на Node.js, нужно создать новый проект.
1. В первую очередь убедитесь, что у вас установлен Node.js на вашем компьютере. Если нет, то нужно его установить.
2. Откройте командную строку или любую другую консоль, где вы будете работать с проектом.
3. Создайте новую папку для проекта и перейдите в неё с помощью команды «cd» в вашей консоли.
4. Введите команду «npm init», чтобы создать новый файл package.json. Вам будут заданы некоторые вопросы о вашем проекте, такие как название, версия, описание и др. Вы можете заполнить эти поля или оставить их пустыми, нажав Enter.
5. Завершите создание файла package.json, нажав Enter или вводя нужную информацию для каждого поля.
Теперь вы создали новый проект и готовы начать разрабатывать телеграм бота на Node.js!
Установить необходимые пакеты
Перед тем как начать разрабатывать телеграм бота на Node.js, вам понадобится установить несколько пакетов.
1. Node.js — среда выполнения JavaScript. Перейдите на официальный сайт Node.js и установите последнюю версию.
2. Telegram Bot API — модуль для работы с Telegram Bot API. Вы можете установить его, выполнив следующую команду в командной строке:
npm install node-telegram-bot-api
3. Express — фреймворк для создания веб-приложений на Node.js. Установите его с помощью следующей команды:
npm install express
4. dotenv — пакет, который позволяет использовать файлы .env для хранения конфигурационных переменных. Выполните следующую команду для установки:
npm install dotenv
5. nodemon (опционально) — инструмент, который позволяет автоматически перезагружать сервер при изменениях файлов. Установите его следующей командой:
npm install -g nodemon
После установки всех необходимых пакетов, вы можете переходить к следующему шагу — настройке бота.
Создать Telegram бота
Для создания Telegram бота на Node.js вам потребуется:
После выполнения этих шагов вы сможете взаимодействовать с созданным ботом через Telegram, отправлять и получать сообщения, а также выполнять другие действия, в зависимости от ваших потребностей.
Настроить обработку команд
После настройки и создания базового бота, вам необходимо настроить обработку команд пользователя. Для этого вы можете использовать библиотеку node-telegram-bot-api, которую вы уже установили.
Сначала вам нужно определить команды, которые ваш бот будет обрабатывать. Команды должны начинаться с символа /, за которым следует название команды. Например, вы можете определить команду /start для приветственного сообщения или команду /help для вывода справочной информации.
Для обработки команд вам понадобится создать обработчик событий onText бота. В этом обработчике вы можете определить функции для каждой команды, которую вы хотите обрабатывать.
Вот пример кода для настройки обработки команд:
bot.onText(//start/, (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Привет, давай начнем!’); >); bot.onText(//help/, (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, ‘Это справочное сообщение.’); >);
В этом примере кода мы определили две команды: /start и /help . При получении любого из этих сообщений, бот отправит ответное сообщение с соответствующим текстом.
Вы можете добавить любое количество команд и функций обработчиков, чтобы ваш бот выполнял разные действия в зависимости от команды, полученной от пользователя.
Теперь ваш бот готов к обработке команд! Вы можете добавить свои собственные команды и функции обработчики, чтобы создать полезного и интересного бота на платформе Telegram.
Развернуть бота на сервере
После того как мы создали и протестировали нашего телеграм бота на локальной машине, мы можем развернуть его на сервере, чтобы он был доступен пользователю в любое время.
Для начала, выберите хостинг-провайдера, который поддерживает запуск Node.js приложений. Некоторыми популярными провайдерами являются Heroku, AWS, DigitalOcean и Google Cloud.
После того как вы выбрали провайдера, вам нужно зарегистрироваться и создать новый сервер. У провайдера должна быть документация, которая подскажет вам, как работать с их сервисом, и как развернуть приложение на сервере.
Когда вы создали сервер, вам нужно будет загрузить свое приложение на сервер. Вам могут понадобиться SSH-данные для подключения к серверу при помощи SSH-клиента, такого как PuTTY.
Запустите терминал и используйте команду SCP (Secure Copy) для загрузки всех файлов вашего проекта на сервер. Например:
Затем на сервере установите зависимости вашего проекта с помощью npm команды:
npm install
Затем вам нужно запустить ваше приложение на сервере. Снова используйте терминал и выполните следующую команду:
node index.js
Теперь ваш телеграм бот должен быть запущен на сервере. У вас должен быть URL-адрес (например, https://example.com), который вы можете использовать для добавления вашего бота в чаты и общения с ним пользователями. Не забудьте добавить этот URL-адрес в настройки вашего телеграм бота.
Таким образом, вы успешно развернули вашего телеграм бота на сервере. Теперь он доступен пользователям в любое время и может обрабатывать команды и сообщения.
Источник: uchet-jkh.ru