Акмалов Артур

Mikrotik отправить сообщение в Telegram

Отправка сообщения

Для мониторинга и  оперативных уведомлений для меня удобнее использовать telegram, чем почту. Для этого я создал в Telegram бота и настроил очень удобную и простую функцию на устройствах mikrotik.

Создание бота

Через официальный бот @BotFather легко создается в 2-3 нажатия. /new bot — придумываем название — придумываем логин

После создания смотрим информацию API Token и копируем себе

Token выглядит примерно так: 1064657353:AAFH1MioTXgrmHGZмAr-XcGE18BShD5ud0Y

Находим по логину своего свежесозданного бота и отправляем ему пару сообщений.

Далее создаем ссылку следующего вида со своим API token:

https://api.telegram.org/botAPI_token/getUpdates

Запускаю в браузере, где необходимо найти строку chat id: 

Выглядит примерно так: chat»:{«id»:268900781

API Token: 1064657353:AAFH1MioTXgrmHGZмAr-XcGE18BShD5ud0Y

chat id: :268900781

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

Для проверки работоспособности в командой строке вводим:

/tool fetch url="https://api.telegram.org/botAPI_TOKEN/sendMessage\?chat_id=CHAT_ID&text=test" 

(Подставляем свои API_TOKEN и CHAT_ID) Получаем сообщение в боте — отлично

failure: closing connection: <400 Bad Request>

При такой ошибке надо проверять синтаксис команды

В целом все уже работает и можно использовать. Вводить можно только транслит. 

Mikrotik отправить сообщение на русском

Для использования кириллицы (использовать русские буквы) в Router OS можно использовать UTF кодирование.

Упал канал — %D0%A3%D0%BF%D0%B0%D0%BB+%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB

Онлайн кодирование ссылка

Создание функции

Функция в Router OS для удобной отправки сообщений в телеграм

Глобальные переменные:

:global token API_TOKEN 
:global chatid CHAT_ID 

Функция:

:global sendT do={:tool fetch url=("https://api.telegram.org/".$token."/sendMessage\?chat_id=".$chatid."&text=".$text."") keep-result=no;} 

Теперь не надо вводить длинный код при отправке сообщений в телеграм, а можно использовать простую короткую функцию. Например так:

$sendT text="test mikrotik" 

Можно легко использовать внутри других скриптов или функций. 

Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии