Als u van plan bent om een set scripts op uw MikroTik-apparaat uit te voeren en te gebruiken, het is niet erg rationeel om voor elk bericht een verzendprocedure te schrijven, het is beter om de functie “stuur een bericht naar Telegram” in een apart script op te nemen. En gebruik dit script indien nodig.
Nu moet u Telegram-parameters in slechts één script corrigeren.
? Om het script te laten werken, moet u een Telegram-bot-token en een chat-ID of een persoonlijke ID hebben. Het maken van een Telegram-bot en het verkrijgen van de vereiste ID is niet het onderwerp van dit artikel.
Artikel in andere talen:
?? – MikroTik Scripts: Sending a message to Telegram (function)
?? – MikroTik Scripts: Enviar un mensaje a Telegram (función)
?? – MikroTik Скрипты: Отправка сообщения в Telegram (функция)
?? – Scripts MikroTik: Envoi d’un message à Telegram (fonction)
?? – MikroTik-Skripte: Senden einer Nachricht an Telegram (funktion)
Script ‘Een bericht naar Telegram verzenden’
Het script gebruikt html-opmaak. U kunt hier lezen welke opmaakparameters Telegram gebruikt – link.
Het script accepteert de MessageText variabele, die de berichttekst bevat. MessageText mag niet leeg zijn.
Als het script foutloos werkt, schrijft MikroTik informatie over het verzenden van berichten en de tekst van het bericht naar het logboek.
Aangezien het script wordt uitgevoerd vanuit een ander script, is het instellen van machtigingen voor het uitvoeren van het script niet vereist.
[System] -> [Scripts] -> [+] -> [Name: MyTGBotSendMessage] -> [Don't Require Permissions]
Scriptcode:
: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";
Het aanroepen van het script “Stuur een bericht naar Telegram” vanuit een ander script
[System] -> [Scripts] -> [+] -> [Name: SendMessageToTelegram]
Om berichten te verzenden, moet u de MessageText parameter doorgeven aan het MyTGBotSendMessage script.
Scriptcode:
: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;
Als u bij het aanroepen van het script een syntax error of een fout failure: closing connection: <400 Bad Request> ontvangt, is het probleem mogelijk het gebruik van MikroTik-servicetekens in de berichttekst. platte tekst zonder speciale tekens of markup-tekens naar de Engelse taal.
? Dit artikel besprak het maken van het Send message to Telegram-script vanuit Mikrotik. Ik hoop dat het gebruik van het verzenden van berichten naar Telegram vanaf MikroTik-apparaten nu duidelijker is geworden. Als u echter problemen ondervindt bij het instellen, kunt u een bericht schrijven in de vorm van een opmerking die ik zal proberen te helpen.
Het script wordt gecontroleerd: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (stabiel).