Kutsegula kwakutali kwa zolemba za Mikrotik kuchokera ku Telegalamu

Alexander Koryukin adandikakamiza kuti ndikwaniritse izi GeXoGeN ndi chofalitsa chakeKuyatsa kwakutali kompyuta kwaulere, popanda ma SMS komanso opanda mitambo, pogwiritsa ntchito Mikrotik".

Ndipo ndemanga mu gulu limodzi la VK la Kirill Kazakov:

Eya, sizotetezeka konse. Ndikadakonda kulemba boti ya telegalamu yomwe imangovomereza malamulo oyambitsa ku akaunti yanga.

Ndinaganiza zolemba bot wotere.

Chifukwa chake, chinthu choyamba kuchita ndikupanga bot mu telegalamu.

  • Timapeza posaka akaunti yotchedwa @botfather
  • Dinani pa Start batani pansi pazenera
  • Kenako timamulembera lamulo / newbot

Kenako timayankha mafunso awiri osavuta:

  • Funso loyamba ndi dzina la bot kuti lipangidwe. MyMikrotikROuter
  • Funso lachiwiri ndi dzina lakutchulidwa la bot lomwe likupangidwa (liyenera kutha ndi bot) MikrotikROuter_bot

Poyankha, tidzalandira chizindikiro cha bot yathu, kwa ine ndi:

Gwiritsani ntchito chizindikiro ichi kuti mupeze HTTP API: 265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4

Kutsegula kwakutali kwa zolemba za Mikrotik kuchokera ku Telegalamu
Kenako, muyenera kupeza bot yathu posaka ndi dzina @MikrotikROuter_bot ndikusindikiza batani loyambira.

Pambuyo pake, muyenera kutsegula msakatuli ndikulowetsa mzere wotsatirawu:

 https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getUpdates

Kumene XXXXXXXXXXXXXXXXXXXXX ndi chizindikiro cha bot yanu.

Tsamba lofanana ndi ili litsegulidwa:

Kutsegula kwakutali kwa zolemba za Mikrotik kuchokera ku Telegalamu

Tikupeza malemba otsatirawa pa izo:

"chat":{"id":631290,

Chifukwa chake, tili ndi chidziwitso chonse chofunikira polemba zolemba za Mikrotik, zomwe ndi:

Chizindikiro cha Bot: 265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4

Chat ID komwe ayenera kulemba: 631290

Kuti muwone, titha kudutsa pa msakatuli:

https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage?chat_id=631290&text=test

Ayenera kupeza zotsatira:

Kutsegula kwakutali kwa zolemba za Mikrotik kuchokera ku Telegalamu

Kuti zitithandizire, tidzawonjezera nthawi yomweyo malamulo a bot:

Kupeza akaunti yokhala ndi dzina @bambo
Kenako timamulembera lamulo / setcommands

  • Adzafunsa bot

Timalemba:
@MikrotikROuter_bot

Onjezani malamulo:

  • helloworld< - Mauthenga oyesera pamacheza 1
  • itsworking-Test Message pa chat 2
  • wolmypc-wake PC yanga

Tsopano ngati mulemba "/" pamacheza, muyenera kupeza:

Kutsegula kwakutali kwa zolemba za Mikrotik kuchokera ku Telegalamu

Tsopano tiyeni tipite ku MikroTik.

RouterOS ili ndi chida chothandizira kukopera mafayilo kudzera pa ftp kapena http / https, zomwe zimagwiritsidwa ntchito zimatchedwa kulanda, zomwe tidzagwiritse ntchito.

Tsegulani Pokwerera ndi kulowa:

/tool fetch url="https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage?chat_id=631290&text=test " keep-result=no

Chonde dziwani kuti MicroTik ikufunika "Β» kuthawa chizindikiro Β«?' mu URL.

Ayenera kupeza zotsatira:

Kutsegula kwakutali kwa zolemba za Mikrotik kuchokera ku Telegalamu

Tsopano tiyeni tipite ku scripts:

Moni Dziko Lapansi

system script add name="helloworld" policy=read source={/tool fetch url="https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage?chat_id=631290&text=Hello,world! " keep-result=no}

ntchito zake

system script add name="itsworking" policy=read source={/tool fetch url="https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage?chat_id=631290&text=Test OK, it's Working " keep-result=no}

wolmypc

system script add name="wolmypc" policy=read source="/tool wol mac=XX:XX:XX:XX:XX:XX interface=ifnamer
    n/tool fetch url="https://api.telegram.org/boXXXXXXXXXXXXXXXXXXX?chat_id=631290&text=wol OK" keep-resul
    t=no"

Musaiwale kutchula dzina lolondola la mac ndi mawonekedwe, komanso bot-token ndi chat_id.

Tsopano ndifotokoza pang'ono zomwe amachita:

Zolemba za "helloworld" zimatumiza uthenga: "Moni, dziko!" kumacheza athu ndi bot.
Zolemba za "itsworking" zimatumiza uthenga: "Yesani Chabwino, Zikuyenda!" kumacheza athu ndi bot.
Zolemba izi ndi zowonetsera.
Ndinawonjezera "wolmypc" script ngati imodzi mwazomwe zingatheke.
Mukamaliza script, bot idzalemba "wol OK" kumacheza.
M'malo mwake, mutha kuyendetsa script iliyonse.

Pangani ntchito:

Telegraph.src

/system scheduler
add interval=30s name=Telegram on-event=":tool fetch url=("https://api.telegr
    am.org/".$botID."/getUpdates") ;r
    n:global content [/file get [/file find name=getUpdates] contents] ;r
    n:global startLoc 0;r
    n:global endLoc 0;r
    nr
    n:if ( [/file get [/file find name=getUpdates] size] > 50 ) do={r
    nr
    n:set startLoc  [:find $content "update_id" $lastEnd ] ;r
    n:set startLoc ( $startLoc + 11 ) ;r
    n:local endLoc [:find $content "," $startLoc] ;r
    n:local messageId ([:pick $content $startLoc $endLoc] + (1));r
    n:put [$messageId] ;r
    n:#log info message="updateID $messageId" ;r
    nr
    n:set startLoc  [:find $content "text" $lastEnd ] ;r
    n:set startLoc ( $startLoc  + 7 ) ;r
    n:local endLoc [:find $content "," ($startLoc)] ;r
    n:set endLoc ( $endLoc - 1 ) ;r
    n:local message [:pick $content ($startLoc + 2) $endLoc] ;r
    n:put [$message] ;r
    n:#log info message="message $message ";r
    nr
    n:set startLoc  [:find $content "chat" $lastEnd ] ;r
    n:set startLoc ( $startLoc + 12 ) ;r
    n:local endLoc [:find $content "," $startLoc] ;r
    n:local chatId ([:pick $content $startLoc $endLoc]);r
    n:put [$chatId] ;r
    n:#log info message="chatID $chatId ";r
    nr
    n:if (($chatId = $myChatID) and (:put [/system script find name=$messa
    ge] != "")) do={r
    n:system script run $message} else={:tool fetch url=("https://api.teleg
    ram.org/".$botID."/sendmessage?chat_id=".$chatId."&text=I can't t
    alk with you. ") keep-result=no} ;r
    n:tool fetch url=("https://api.telegram.org/".$botID."/getUpdates?
    offset=$messageId") keep-result=no; r
    n} r
    n" policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon 
    start-date=nov/02/2010 start-time=00:00:00
	
add name=Telegram-startup on-event=":delay 5r
    n:global botID "botXXXXXXXXXXXXXXXXXX" ;r
    n:global myChatID "631290" ;r
    n:global startLoc 0;r
    n:global endLoc 0;r
    n:tool fetch url=("https://api.telegram.org/".$botID."/getUpdates") 
    ;" policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon 
    start-time=startup

Mawonedwe Owerengekasizikudziwikiratu chifukwa chake, koma kuchokera ku script yogwira ntchito sichiwulula deta yapadziko lonse, inawonjezera script pamene dongosolo likuyamba.
Kuyamba kwa Telegraph

:delay 5
:global botID "botXXXXXXXXXXXXXXXXXX" ;   token bot
:global myChatID "xxxxxx" ;                               chat_id
:global startLoc 0;
:global endLoc 0;
:tool fetch url=("https://api.telegram.org/".$botID."/getUpdates") ;

uthengawo

:tool fetch url=("https://api.telegram.org/".$botID."/getUpdates") ;
:global content [/file get [/file find name=getUpdates] contents] ;
:global startLoc 0;
:global endLoc 0;

:if ( [/file get [/file find name=getUpdates] size] > 50 ) do={

:set startLoc  [:find $content "update_id" $lastEnd ] ;
:set startLoc ( $startLoc + 11 ) ;
:local endLoc [:find $content "," $startLoc] ;
:local messageId ([:pick $content $startLoc $endLoc] + (1));
:put [$messageId] ;
#:log info message="updateID $messageId" ;

:set startLoc  [:find $content "text" $lastEnd ] ;
:set startLoc ( $startLoc  + 7 ) ;
:local endLoc [:find $content "," ($startLoc)] ;
:set endLoc ( $endLoc - 1 ) ;
:local message [:pick $content ($startLoc + 2) $endLoc] ;
:put [$message] ;
#:log info message="message $message ";

:set startLoc  [:find $content "chat" $lastEnd ] ;
:set startLoc ( $startLoc + 12 ) ;
:local endLoc [:find $content "," $startLoc] ;
:local chatId ([:pick $content $startLoc $endLoc]);
:put [$chatId] ;
#:log info message="chatID $chatId ";

:if (($chatId = $myChatID) and (:put [/system script find name=$message] != "")) do={
:system script run $message} else={:tool fetch url=("https://api.telegram.org/".$botID."/sendmessage?chat_id=".$chatId."&text=I can't talk with you. ") keep-result=no} ;
:tool fetch url=("https://api.telegram.org/".$botID."/getUpdates?offset=$messageId") keep-result=no; 
} 

Kodi ntchito

Tsitsani mauthenga athu a "getUpdates" masekondi 30 aliwonse, kenaka yang'anani kuti mudziwe update_id (nambala ya meseji) ndi lemba (matimu athu) ndi chat_id . Mwachikhazikitso, GetUpdates amawonetsa kuchokera ku 1 mpaka 100 mauthenga, kuti zikhale zosavuta, titawerenga lamulo, timachotsa uthengawo. Telegraph api imati kuti muwerenge uthenga muyenera nambala ya meseji + 1

/getUpdates?offset=update_id + 1

Zonse zoyesedwa pa Mikrotik rb915 RouterOS 6.37.1
Ngati mutumiza malamulo ambiri nthawi imodzi, onse adzaphedwa motsatizana ndi masekondi 30.

PS Zikomo kwambiri Kirill Kazakov chifukwa cha lingaliro ndi mnzanga Alexander kuti athandizidwe ndi zolembazo.

powatsimikizira

habrahabr.ru/post/313794
1spla.ru/index.php/blog/telegram_bot_for_mikrotik
core.telegram.org/bots/api
wiki.mikrotik.com/wiki/Manual:Kulemba malemba

sinthani:

03:11:16

Zolemba zokongoletsedwa:

cheke chowonjezera chat_id
Kufufuza chitsiru, ngati wina alembera bot yathu, amamuyankha kuti: "Sindingathe kulankhula nanu. ", itiyankhanso chimodzimodzi ngati sichizindikira lamulo.
Pambuyo popereka lamulo, bot imasiya kulembetsa (onani wolmypc script)

DUP

Anapezeka ndi 7 Wopanda 7 kuti fayilo yomwe ili pamwamba ~ 14 mauthenga sichikukonzedwanso ndi lamulo lopeza (Mikrotik malire). Chifukwa chake, m'tsogolomu, ndisintha script kukhala lua, zikomo 7 Wopanda 7 chifukwa cha ichi, sindinadziwe za lua.

ZOCHITIKA 08.12.2016

mu Telegalamu, mwachiwonekere, adasintha pang'ono "kutulutsa" kwa GetUpdate. tsopano m'mawu akulu muyenera kukonza uthengawo kuchokera pa 2 mpaka 1

kusintha

:local message [:pick $content ($startLoc + 2) $endLoc] ;

Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° :

:local message [:pick $content ($startLoc + 1) $endLoc] ;

Source: www.habr.com