Отправка сообщения
Для мониторинга и оперативных уведомлений для меня удобнее использовать telegram, чем почту. Для этого я создал в Telegram бота и настроил очень удобную и простую функцию на устройствах mikrotik.
Создание бота
Через официальный бот @BotFather легко создается в 2-3 нажатия. /new bot – придумываем название – придумываем логин
После создания смотрим информацию 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
Онлайн кодирование ссылка
Создание функции
Функция в 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