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

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

Отправка сообщения - Mikrotik Telegram Send Message

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

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

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

Mikrotik Telegram

После создания смотрим информацию 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

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

Mikrotik Telegarm

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

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

Вставляю в скрипт System-> Script (подставить свои значения токена и чат ид) Run script

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

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

$sendT text="test mikrotik" 

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

Для того чтобы значения не терялись, можно данный скрипт добавить в scheduler при запуске устройства.

Подписаться
Уведомить о
guest
8 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Александр

$sendT text=»test mikrotik» 
 status: failed

failure: closing connection: <404 Not Found> 149.154.167.220:443 (4)

Александр

с микротика через терминал коммандой
/tool fetch url=»https://api.telegram.org/botAPI_TOKEN/sendMessage\?chat_id=-1001594485642&text=Test Message» keep-result=no сообщение приходит в телеграмм а вот через создание функций, ошибку выводит
$sendT text=»testmikrotik» 
 status: failed

failure: closing connection: <404 Not Found> 149.154.167.220:443 (4)

Последний раз редактировалось 6 месяцев назад Александр ем
Александр

ок, хорошо буду ждать

Владимир

По поводу применения:
В консоли будет работать, а для использования в скриптах надо:
:global sendT;
$sendT text=»test mikrotik»

Последний раз редактировалось 2 месяцев назад Владимир ем