Si vous prévoyez d’utiliser beaucoup de scripts sur votre appareil MikroTik et d’envoyer leurs résultats à Telegram. Il n’est pas rationnel d’écrire la procédure d’envoi d’un message dans chaque script, le meilleur moyen serait de placer la fonction « envoyer un message à Telegram » dans un script séparé. Et en se référant à ce script au besoin.
Vous devrez maintenant modifier les paramètres de notification Telegram dans un seul script.
? Pour que le script fonctionne, vous devez disposer d’un jeton de robot Telegram et d’un identifiant de chat ou d’un identifiant personnel. La création d’un bot Telegram et l’obtention des identifiants requis n’est pas le sujet de cet article.
Article dans d’autres langues:
?? – MikroTik Scripts: Sending a message to Telegram (function)
?? – MikroTik Scripts: Enviar un mensaje a Telegram (función)
?? – MikroTik Скрипты: Отправка сообщения в Telegram (функция)
?? – MikroTik-Skripte: Senden einer Nachricht an Telegram (funktion)
?? – MikroTik-scripts: een bericht naar Telegram sturen (functie)
Script « Envoi d’un message à Telegram »
Étant donné que le script sera exécuté à partir d’un autre script, la définition des autorisations d’exécution du script n’est pas requise.
The script uses html markup, which markup options Telegram uses can be read – here.
Le script utilise un balisage html, dont les options de balisage utilisées par Telegram peuvent être lues – ici.
Le script accepte la variable MessageText, qui contient le texte du message. MessageText ne peut pas être vide.
Si le script est exécuté sans erreur, les informations sur l’envoi d’un message et d’un texte sont enregistrées dans le journal MikroTik.
[System] -> [Scripts] -> [+] -> [Name: MyTGBotSendMessage] -> [Don't Require Permissions]
Code de script:
: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 keep-result=no;
:log info "Send Telegram Message: $MessageText";
Appel du script « Envoi d’un message à Telegram » à partir d’un autre script
[System] -> [Scripts] -> [+] -> [Name: SendMessageToTelegram] -> [Policy: read, write, policy, test]
Pour envoyer un message, vous devez transmettre le paramètre MessageText au script MyTGBotSendMessage.
Code de script:
: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;
Si, lors de l’appel du script, vous recevez une syntax error ou un failure: closing connection: <400 Bad Request> error, le problème peut provenir de l’utilisation des caractères du service MikroTik dans le texte du message, pour vérification, essayez d’envoyer un texte brut sans caractères spéciaux ou caractères de balisage, en anglais.
? Cet article a abordé la création du script Envoyer un message au télégramme de Mikrotik. J’espère maintenant que l’utilisation de l’envoi de messages à Telegram à partir d’appareils MikroTik est devenue plus claire. Cependant, si vous rencontrez des problèmes lors de la configuration, n’hésitez pas à écrire dans les commentaires. J’essaierai d’aider.
Le script est vérifié: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (stable).