Manual:The Dude v6/Dude Telegram Example: Difference between revisions

From MikroTik Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
== Overview ==
== Overview ==


Here is quick example how to instantly send messages from your RouterOS (Dude) to Telegram bot.
Here is quick example how to instantly send messages from your RouterOS (Dude) server to Telegram bot.


====== 1. Create Telegram BOT. ======  
====== 1. Create Telegram bot. ======  
To receive messages from the Dude server / RouterOS, you will need to create your Telegram BOT, more information can be found on this page:
To receive messages from the Dude server / RouterOS, you will need to create your Telegram bot, more information can be found on this page:


https://core.telegram.org/api
https://core.telegram.org/api


When the bot will be created, you will receive token which can be used for HTTP API
When the bot will be created, you will receive token which can be used for HTTPs API


Token Example:
Token sample:
309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpAB
309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpAB


Line 18: Line 18:
====== 2. Send messages from RouterOS/Dude . ======  
====== 2. Send messages from RouterOS/Dude . ======  


Telegram supports both - GET and POST HTTP method. Since /tool fetch is able to use HTTP GET method you can use this tool to send instant messages to Telegram
Telegram supports both - GET and POST HTTP method. Since /tool fetch is able to use HTTPs GET method you can use this tool to send instant messages to Telegram API.


To successfully send message to your bot, you will need to know the bot token. Simple send message looks like this:
To successfully send message to your bot, you will need to know the bot token.
Simple send message looks like this:


<pre>
<pre>
Line 52: Line 53:
You can use Dude to execute commands in your RouterOS, this means you can use same tool fetch to send messages from the Dude server.
You can use Dude to execute commands in your RouterOS, this means you can use same tool fetch to send messages from the Dude server.


Dude notidication type which allows to execute commands in RouterOS is called '''execute on server'''. More about Dude notifications can be found here:
Dude notification type which allows to execute commands in RouterOS is called '''execute on server'''. More about Dude notifications can be found here:
http://wiki.mikrotik.com/wiki/Manual:The_Dude_v6/Notifications
http://wiki.mikrotik.com/wiki/Manual:The_Dude_v6/Notifications



Revision as of 08:50, 9 January 2017

Overview

Here is quick example how to instantly send messages from your RouterOS (Dude) server to Telegram bot.

1. Create Telegram bot.

To receive messages from the Dude server / RouterOS, you will need to create your Telegram bot, more information can be found on this page:

https://core.telegram.org/api

When the bot will be created, you will receive token which can be used for HTTPs API

Token sample: 309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpAB

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

2. Send messages from RouterOS/Dude .

Telegram supports both - GET and POST HTTP method. Since /tool fetch is able to use HTTPs GET method you can use this tool to send instant messages to Telegram API.

To successfully send message to your bot, you will need to know the bot token. Simple send message looks like this:

/tool fetch url="https://api.telegram.org/bot309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpAB/sendMessage\?chat_id=312605050&text=ExampleMessage"

Where the HTTPs URL GET query string is created from:

  • https://api.telegram.org/bot - The base of URL
  • 309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpAB - Your Telegram bot token
  • /sendMessage - Command type
  • \?chat_id=312605050 - 312605050 is the chat where messages will appear
  • &text=ExampleMessage - ExampleMessage is message string, which will be sent to your bot
Icon-note.png

Note: Note that "?" need to be escaped with backlash


The variables in the URL you will need to change:

/tool fetch url="https://api.telegram.org/bot309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpAB/sendMessage\?chat_id=312605050&text=ExampleMessage"

Most likely you will use the same bot and chat, this means each time you will need to change only message text:

/tool fetch url="https://api.telegram.org/bot309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpA/sendMessage\?chat_id=312605050&text=ExampleMessage"

If the Telegram bot is configured correctly, you should instantly see the message, when the tool fetch command is executed in RouterOS/Dude.

Dude notification example using Telegram bot

You can use Dude to execute commands in your RouterOS, this means you can use same tool fetch to send messages from the Dude server.

Dude notification type which allows to execute commands in RouterOS is called execute on server. More about Dude notifications can be found here: http://wiki.mikrotik.com/wiki/Manual:The_Dude_v6/Notifications

To create new notification, that will send messages to Telegram bot follow these steps:

1. Create new notification, with notification type "execute on server" 2. Add tool fetch command in the Command field


Dude Notifiation.png


It's also possible to use Dude variables in the command:

/tool fetch url="https://api.telegram.org/bot309683994:AAFh8645FeAOgUbcOgUVIhtclbmzpwwIXpA/sendMessage\?chat_id=312605050&text=Time: [Time];
 Device: [Device.FirstAddress]; Status: [Service.Status]"


This code will result in telegram notification messages:

Telegram.png


Test fetch command

Icon-note.png

Note: The fastest way to check if everything works correctly is to use "Test" button, just note that with "Test" button Dude variables will not work, that's why for testing purposes use simple text.