Найти в Дзене
Акмалов Артур

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

Отправка сообщений с RouterOS в телеграм. Создание удобной функции
Оглавление

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

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

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

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

-2

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

Token выглядит примерно так:

bot1064657353:AAFH1MioTXgrmHGZмAr-XcGE18BShD5ud0Y

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

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

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

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

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

  • API Token: bot1064657353:AAFH1MioTXgrmHGZмAr-XcGE18BShD5ud0Y
  • chat id: :268900781

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

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

/tool fetch url="https://api.telegram.org/API_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

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

-3

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

Функция в 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"

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

Так же стоит помнить, что при перезагрузке роутера глобальные переменные теряются (необходимо добавить в автозапуск функцию и глобальную переменные)

Источник: Akmalov.com