Привет. В предыдущих моих постах на тему Node-RED и бота для голоса, я может быть немного сумбурно, но по крайней на конкретном примере попытался рассказать о визуальном программировании с помощью Node-RED.
Делаем своего бота для уведомлений на Node-RED для golos.io. Часть первая.
Делаем своего бота для уведомлений на Node-RED для golos.io. Часть вторая, телеграмная.
Делаем своего бота для уведомлений на Node-RED для golos.io. Часть третья, разделительная
Делаем своего бота для уведомлений на Node-RED для golos.io. Часть четвертая, заключительная
Мне мой бот понравился (такая корова нужна самому), и я решил ковырять его и дальше для себя. Сценарий бота я переработал, сделал более приятные моему глазу сообщения для telegram. Поправил форматирование. Добавил перевод GESTS в M. GESTS. Все убрал в Sub Flows и разбил на логические блоки. Бот в данный момент извещает о комментариях, отданных за меня голосах, переводов наличности, и о авторских и кураторских гонорарах. В планах добавить сообщения из внутреннего рынка о купле/продажи, актуальной цене и тенденциях. Ну и наверное сделаю голосовального бота.
Сценарий бота я выложил на github-е и буду периодически коммитить туда. Сценарий найти можно по этой ссылке
https://github.com/gropox/nodered-golosbot
Сценарий бота выглядит примерно так.
А так выглядят сообщения моего бота. |
Дальше инструкция для желающих попробовать.
Установка Node-RED
Установка Node-RED описана в интернете достаточно хорошо. Вот тут инструкция для Ubuntu. Я пробовал на своей 16.10 и все прекрасно установилось.
Запускается Node-RED командой node-red. По умолчанию node-red сервер слушает на 1880 порту, но можно задать и свой порт параметром “-p 1971”, где 1971 номер порта.
После первого запуска в домашней папке будет создана папка “.node-red”.
golosbot:~$ node-red -p 1971 &
[1] 13600
golosbot:~$ 26 Feb 16:36:17 - [info]
Welcome to Node-RED
===================
26 Feb 16:36:17 - [info] Node-RED version: v0.16.2
26 Feb 16:36:17 - [info] Node.js version: v6.10.0
26 Feb 16:36:17 - [info] Linux 4.8.0-39-generic x64 LE
26 Feb 16:36:18 - [info] Loading palette nodes
26 Feb 16:36:21 - [warn] ------------------------------------------------------
26 Feb 16:36:21 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
26 Feb 16:36:21 - [warn] ------------------------------------------------------
26 Feb 16:36:21 - [info] Settings file : /home/golosbot/.node-red/settings.js
26 Feb 16:36:21 - [info] User directory : /home/golosbot/.node-red
26 Feb 16:36:21 - [info] Flows file : /home/golosbot/.node-red/flows_georg-Inspiron-1370.json
26 Feb 16:36:21 - [info] Creating new flow file
26 Feb 16:36:21 - [info] Starting flows
26 Feb 16:36:21 - [info] Started flows
26 Feb 16:36:21 - [info] Server now running at http://127.0.0.1:1971/
Чтобы проверить, запустился ли сервер, откройте в своем браузере эту ссылку (порт замените на свой) http://localhost:1971 |
Telegram-Bot
Для бота понадобится telegram-Модуль, который надо будет доставить. Для этого в меню выберите “Manage palette”. |
В панели слева, на вкладке “Install” введите в поиск “telegram” и установите первый модуль в списке, без приставки plus.
Проконтролируйте, что у вас на палитре появились ноды для Telegram бота.
Импорт сценария
В консоли перейдите в паку “~/.node-red/lib/flows”
golosbot:~$ cd ~/.node-red/lib/flows
В эту папку надо либо скачать сценарий с ботом
golosbot:~/.node-red/lib/flows$ wget -O golos.notifier https://raw.githubusercontent.com/gropox/nodered-golosbot/master/golos.notifier
Либо клонировать в эту папку репозиторий.
Затем, открыть окно баузера с Node-RED и перезагрузить страницу (чтобы Node-RED перечитал содержимое папки). Или элегантно перестартуйте Node-RED.
golosbot:~/.node-red/lib/flows$ killall node-red & node-red -p 1971 &
Теперь можно импортировать сценарий. Для этого в меню выберите “Import -> Library -> golosbot_notifier”
и разместите сценарий на Flow. Почему то портится кодировка при экспорте-импорте и поэтому некоторые имена нод выглядят странно. В палитре сверху должны добавиться SubFlow с подсценариями бота.
Финальная настройка
Осталось настроить бота. Для этого попросите бота telegram “BotFather”, что бы он создал вам бота и скопируйте токен бота. На сценарии откройте свойства ноды "Голос бот".
И в строке "Bot" нажмите на кнопочку справа, с карандашом. Откроются свойства бота. Там вы впишите или вставьте токен бота и сохраните свойства бота и ноды.
Задеплойте все и справа откройте отладочную панель “Debug”, там возможно будет уже несколько сообщений. На данном шаге нужно узнать chatId, для этого начните чат с вашим ботом в клиенте telegram и напишите, что нибудь.
Промотайте окно “Debug” в самый низ, там должно быть ваше сообщение боту и искомый chatId
Осталось отредактировать ноду “Настройки”. Вместо “ropox” введите имя вашего аккаунта и вместо моего chatId введите ID чата с вашим ботом.
Если теперь задеплоить все, вы должны будете получить горсть сообщений в чат telegram.
Спасибо за внимание
Привет!
Этот пост был выбран Академией Голоса и попал в список программы поддержки качественных образовательных постов.
Ссылка на твой пост будет опубликована в отчете Академии.
Спасибо за полезный контент (ノ◕ヮ◕)ノ*:・゚✧
Для участия в инициативе #открытый-код Ваш репозиторий должен иметь выделенный аккаунт. Спасибо за участие :-)
о. хоть где-то можно увидеть графический код, без этого ужасного текстового
Это сообщение отправлено автоматически. Пожалуйста, зайдите в мой блог и проголосуйте за пост про siski.io. все средства от поста будут перечислены в @siski. Спасибо.
вот ботов не любят. томми вот заминусили за ботоводство
Ну этот бот мирный. Информационный. Планов по мировому господству не вынашиваю.