MikroTik Скрипты: Отправка сообщения в Telegram (функция)

Если вы планируете использовать множество скриптов на вашем устройстве MikroTik и отправлять их результаты в Telegram. Писать процедуру отправки сообщения в каждом крипте не очень рационально, оптимальным способом будет размещение функции «отправить сообщение в Телеграм» в отдельный скрипт. И обращение к этому скрипту по мере необходимости.

Теперь изменять параметры Тelegram уведомления придется всего в одном скрипте.

🔔 Для работы скрипта вы должны иметь Токен Телеграм бота и ID чата или персональный ID. Создание Telegram бота и получение необходимых ID не является темой этой статьи.

Статья на других языках:
🇺🇸 — MikroTik Scripts: Sending a message to Telegram (function)
🇪🇸 — MikroTik Scripts: Enviar un mensaje a Telegram (función)
🇫🇷 — Scripts MikroTik: Envoi d’un message à Telegram (fonction)
🇩🇪 — MikroTik-Skripte: Senden einer Nachricht an Telegram (funktion)
🇳🇱 — MikroTik-scripts: een bericht naar Telegram sturen (functie)

Скрипт «Отправка сообщения в Telegram»

В скрипте используется html разметка, какие варианты разметки использует Telegram можно прочитать — здесь.

Скрипт принимает на вход переменную MessageText, содержащую текст сообщения. MessageText не может быть пустым.

Если скрипт выполнен без ошибок в лог MikroTik записывается информация о отправке сообщения и текст.

Так как скрипт будет выполняться из другого скрипта, установка разрешений на выполнение скрипта не требуется.

[System] -> [Scripts] -> [+] -> [Name: MyTGBotSendMessage] -> [Don't Require Permissions]

Код скрипта:

:local BotToken "987654321:AAFJIVTAWodBwzGX2CLne6-PK4RFNSy-8OY";
:local ChatID "987654321";
:local ParseMode "html";
:local DisableWebPagePreview True;
:local SendText $MessageText;

:local tgUrl "https://api.telegram.org/bot$BotToken/sendMessage?chat_id=$ChatID&text=$SendText&parse_mode=$ParseMode&disable_web_page_preview=$DisableWebPagePreview";

/tool fetch http-method=get url=$tgUrl output=none;

:log info "Send Telegram Message: $MessageText";
Скрипт "Отправка сообщения в Telegram"

Вызов скрипта «Отправка сообщения в Telegram» из другого скрипта

[System] -> [Scripts] -> [+] -> [Name: SendMessageToTelegram]

Для отправки сообщения вы должны передать параметр MessageText в скрипт MyTGBotSendMessage.

Код скрипта:

:local DeviceName [/system identity get name];

:local MessageText "\F0\9F\9F\A2 <b>$DeviceName:</b> <i>italic</i>  <code>inline fixed-width code</code> plain text <a href=\"https://mhelp.pro/\">More Scripts</a>";

:local SendTelegramMessage [:parse [/system script  get MyTGBotSendMessage source]];

$SendTelegramMessage MessageText=$MessageText;
Вызов скрипта «Отправить сообщение в Telegram»

Если при вызове скрипта вы получаете syntax error или ошибку failure: closing connection: <400 Bad Request> проблема может быть в использовании в тексте сообщения служебных символов MikroTik, для проверки попробуйте отправить обычный текст без специальных символов или символов разметки, на английском языке.


🟢 В этой статье обсуждалось создание скрипта Отправка сообщения в Telegram из Mikrotik. Я надеюсь теперь использование отправки сообщений в Telegram из устройств MikroTik стало понятней. Однако, если вы столкнетесь с каким-то проблемами при настройке, не стесняйтесь написать в комментариях. Я постараюсь помочь.

Комментарии 4

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector