Untuk membuat Bot Telegram yang bisa di ajak “ngobrol” tentunya anda diharuskan mempunyai web server dan setidaknya mengerti bahasa pemograman PHP, tentunya hal ini cukup rumit apabila anda tidak mempunyai ilmu dasar tentang Pemograman PHP maupun tidak mempunyai web server. Pada tutorial kali ini kita akan membuat Bot Telegram kita bisa di ajak “ngobrol” hanya dengan menggunakan fasilitas System Scheduler dan System Script pada Mikrotik yang bisa dimanfaatkan untuk memonitoring kondisi Mikrotik kita. Untuk menggunakan Bot Telegram PHP silahkan kunjungi Cara Konfigurasi MIKBOTAM untuk Monitoring Mikrotik dengan Menggunakan Bot Telegram PHP
Script ini sebagai konfigurasi awal yang berfungsi agar Mikrotik dan Bot anda bisa saling berkomunikasi, anda tinggal memasukkan API Key dan Chat ID. https://pastebin.com/VRj1KDv6
:put "tg: Load config"
:local config {
"botAPI"="(API BOT TELEGRAM ANDA)";
"defaultChatID"="(CHAT ID BOT ANDA)";
"trusted"="(CHAT ID YANG DIGUNAKAN UNTUK BERKOMUNIKASI DENGAN BOT)";
"storage"="";
"timeout"=1;
}
return $config
Buat script dengan nama “tg_getUpdates”
Skrip memeriksa pesan baru dari bot telegram dan memanggil skrip yang sesuai. Jika perintah tidak dikenal atau sumbernya tidak tepercaya, perintah pada telegram akan diabaikan.
Share to Unlock Content
Silahkan share untuk membuka link download dan membuka scriptnya
Apabila tutorial ini bermanfaat support saya dengan cara share artikel ini..
Terimakasih
kalau hanya menampilkan jumlah yg online saja pakai dibawah ini dengan nama tg_cmd_hotspot, nanti dipanggil di bot telegramnya menggunakan perintah /hotspot
[php]
:local send [:parse [/system script get tg_sendMessage source]]
:local hotspot [:len [/ip hotspot active find]]
:put $params
:put $chatid
:put $from
:local text "Router Id:* $[/system identity get name] * %0A\
Hotspot users: _$hotspot online_"
Semua script disimpan di system-script, nama script sesuaikan dengan panduan…lalu buat sebuah schedule baru dengan perintah untuk menjalankan script dengan nama “tg_getUpdates”
dengan mengetikan di telegram dengan perintah /hi, atau /cpu untuk monitoring kondisi cpu,, apabila ingin menambahkan script lain yg akan di jalankan di telegram buat script tersebut dengan nama tg_cmd_(namascript), lalu untuk menjalankan di telegram dengan perintah /namascript
alhamdulillah sudah jalan, saya menjalankan perintah sederhana dengan script: /ip hotspot ip-binding set numbers=13 type=regular (untuk mengubah binding ke regular) dan /ip hotspot ip-binding set numbers=13 type=bypassed (untuk bypass) . cuma saya gak tau cara nambahin agar telegram dapat respond bahwa script tersebut status regular/bypass, kalau dari script2 punya bapak diatas adakah sebagai contoh buat script ini? terimakasih
Pak mau tanya lagi, didalam group saya tambahkan user lain, kenapa ketika user tersebut merintah bot milik kita gak bisa ya? apa ada yang salah dengan setingan group? atau memang bot hanya bisa diperintah oleh sipembuat? Terimakasih
Om, mau tanya.. Router Utama saya dikasih DNS Statik ke Switch_A –> 192.168.88.1
menggunakan terminal, bisa ping menggunakan “ping Switch_A” dan responnya reply.
Yang jadi pertanyaan, apakah menggunakan bot telegram bisa ping menggunakan Switch_A?
saya coba hanya bisa menggunakan IP 192.168.88.1.
Masih belum faham gan, scriptnya nanti disimpan di rrouter apa di switch_A.. switch_A ini apakah sebuah dns name static dengan ip 192.168.88.1? kalau untuk ping apakah menggunakan ip atau dns name static saya rasa sama saja
Halo bang….
Kalau script buat monitoring sistem log di mikorik gimana ya bang?….
maunya kalau ada new log di mikrotik itu bisa send 1 baris otomatis ke telegram.
Thanks responnya
script lengkap bisa di unduh disini gan https://github.com/sopyanyayan/scriptmikrotik, pindahkan ke file manager mikrotik lalu di new terminal jalankan perintah import file=Telegram.rsc. Lalu di script edit bot id dan chat id nya
semua script sudah terimport semua
api, chat id , dan trusted juga sudah diganti
tapi nga ada respon sama sekali ketika melakukan comand /hi maupun runscript?
mohon solusinya
Untuk mengeceknya coba matikan dulu scheduler nya…di bot telegram coba jalankan perintah contoh /hi lalu di new terminal winbox coba jalankan “system script run tg_getUpdates”, disana akan muncul keterangan sukses maupun terjadi error…
pak mau nanya, waktu coba jalanin di terminal yg /system script run tg_getUpdates kok ktnya syntax error (line 30 column 27) ya, yg salah dmn nya ya pak?
Kemungkinan ada script/karakter yg terlewat, di copas ulangi saja scriptnya ada di sini https://pastebin.com/u/sopyanx, atau pakai perintah di new terminal /tool fetch url=”https://labkom.co.id/file/script_telegram.rsc” mode=http lalu jalankan perintah /import file=script_telegram.rsc
permisi, thanks tutornya sebebelumnya, tapi saya misal ingin membuat command input ping dengan ip sesuai keinginan saja bagaimana pak. misal: ping 192.168.1.100, nanti muncul result ping ke ip tsb. jadi ip-nya ditentukan waktu ngetik, kasarannya ping sembarang device dude lewat telegram. terima kasih.
alhamdulillah, jazaakallahukhair, manteb pak, berhasil saya coba,
sebelumnya sempet bingung kok ip nya 88 semua waktu ping, eh ternyata script diatas di replace ke ‘tg_cmd_ping”, kirain buat script baru, hehehe. terima kasih master.
buat script dengan nama tg_cmd_reboot, isi script dengan system reboot…scheduler untuk tg_getUpdates jangan terlalu cepat,kalau tidak nanti Mikrotikmu error/booting terus.
“system reboot” kalau itu bagaimana? tp schedule untuk menjalankan tg_getupdate jangan terlalu cepat karena kalau terlalu cepat nanti mikrotiknya sudah bootingnya
Selamat Pagi Pak Yayan Sopyan, saya ingin bertanya perihal Script Hostpot dan CPU itu tidak jalan pak, Untuk Error nya berupa seperti ini pak, Kira-kira errornya di bagian mana ya pak ? (Untuk yang bintang-bintang itu saya sensor pak) Terimakasih
Finished to read updates.
message id=52
update id=**********
from id=*********
first name=*****
last name=
username=
in chat=***********
command=/cpu
cmd=
params=
Try to invoke external script tg_cmd_cpu
********
Reyota
ambiguous value of value-name, more than one possible value matches input
Pak saya ingin Bertanya perihal penambahan parameter pada script tersebut, misal saya ingin menambahkan param4 dan param5 apa yang haru saya edit Pak Terimakasih. apakah yang harus saya pelajari agar paham perihal penambahan parameter tersebut
Kira-kira begini di bot telegram ketika mengetikan perintah “/tes dd dd dd dd” ketika script dijalankan kira kira muncul seperti ini. jadi untuk menambahkan param4 di edit saja dari param3
Finished to read updates.
message id=400
update id=xxx
from id=xxxx
first name=Yayan
last name=(Labkom.co.id)
username=LabkomTV
in chat=xxx
command=/tes dd dd dd dd
cmd=tes
params=dd dd dd dd
Try to invoke external script tg_cmd_tes
no such item
baris ini diabaikan saja dulu karena ini hanya kondisional saja kalau param terbaca 0, atau bisa dicoba di hapus biar ga bingung
:if ([:len [:find $param2 ” “]]>0) do={
:set param2 [:pick [:pick $params ([:find $params ” “]+1) [:len $params]] 0 [:find [:pick $params ([:find $params ” “]+1) [:len $params]] ” “]]
} else={
:set param3 “”
}
Sebentar Pak saya masih kurang mengerti apa yang harus ditambahkan saat kita mendeklarasikan :local param4, yang dasarnya kita dapat dari :local param3
Saya Coba Menambahkan 5 Param pada script pak yayan sopyan, yang menjelaskan tentang ppp . tetapi hasilnya seperti ini pak. ketika saya mengirim pesan seperti ini /ppp test2 test2 default 172.17.17.1 172.17.17.2
Finished to read updates.
message id=89
update id=xxxxxxxxx
from id=xxxxxxxxxx
first name=Reyota
last name=
username=
in chat=xxxxxxxxx
command=/ppp test test default 172.17.17.1 172.17.17.2
cmd=
params=
Try to invoke external script tg_cmd_ppp
test test default 172.17.17.1 172.17.17.2
test
test
default 172.17.17.1/32 172.17.17.2/32
default 172.17.17.1/32 172.17.17.2/32
default 172.17.17.1/32 172.17.17.2/32
954109239
Reyota
invalid value for argument address
ini perintah untuk menambahkan di ppp secret (nama, password, profile, local address, remote address) seperti itu ya? kalau di coba di new terminal udah benar belum perintahnya? kayanya variabel address dia ga di kenali, coba pakai “local”?
Jika Saya coba secara langsung di terminal benar seperti itu pak tulisannya
/ppp secret add name=test password=test service=pptp pro
file=default local-address=172.17.17.1 remote-address=172.17.17.2 dan bisa terbuat di secret
untuk penambahan di script botnya seperti ini pak di script line paling bawah
:if ($param1!=”password” and $param1!=”profile” and $param1!=”enable” and $param1!=”disable” and $param1!=”delete” and $param1!=”print”) do={
/ppp secret add name=$param1 password=$param2 service=pptp profile=$param3 local-address=$param4 remote-address=$param5
$send chat=$chatid text=(“User PPP %0AUsername: $param1 %0APassword: $param2 %0AProfile: $param3 %0ABerhasil dibuat…”) mode=”Markdown”
}
melihat BOT ID bisa melalui akun fatherbot, CHAT ID bisa melalui akun get id atau getUpdates, chat id dan trusted disamakan saja kecuali bot tersebut bisa digunakan oleh akun selain pemilik BOT
maksudnya sub menu yah, tinggal duplikat saja menu /hi nanti buat submenu dengan nama tg_cmd_submenunya, nanti di menu /hi tinggal tambahkan saja /submenunya
Mau Tanya:
1. untuk menambahkan fungsi status User itu Enable dan Disable di Tab USER bagaimana ya?
2. di Mikrotik rb750gr3 saya os Winbox v6.38.7, dibagian HotspotUser – Limits, itu kok tidak bisa input quota 1G. 1MiB/1MB, tapi harus isi 1073741824
itu karena OS nya kah? atau karena apa ya?
1. :local disable (“*Uptime:* “.[/ip hotspot user get value-name=”disable” $activeIndex].”%0A”), tinggal ditambahkan saja di variabel set output, nanti nilai yg muncul true/false
2. Coba isi dengan 1G/1M/1K, kalau memang ga bisa bisa jadi dari os nya
:if ($params=”all”) do={
:local output
:foreach activeIndex in=[/ip hotspot user find] do={
:local userName (“*Username:* “.[/ip hotspot user get $activeIndex name].”%0A”)
:local userPassword (“*Password:* “.[/ip hotspot user get $activeIndex password].”%0A”)
:local userProfile (“*Profile:* “.[/ip hotspot user get $activeIndex profile].”%0A”)
:local userBytesOut (“*Quota Used:* “.[/ip hotspot user get $activeIndex bytes-out].”%0A”)
:local userLimitBytesOut (“*Total Quota:* “.[/ip hotspot user get $activeIndex limit-bytes-out].”%0A”)
:set output ($output.$userName.$userPassword.$userProfile.$userBytesOut.$userLimitBytesOut.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
:local disable (“*Uptime:* “.[/ip hotspot user get value-name=”disable” $activeIndex].”%0A”), tinggal ditambahkan saja di variabel set output, nanti nilai yg muncul true/false
dimasukkan dibagian mananya?
saya ingin tambahkan status:
User : Enable / Disable
sebelum baris :set output ($output.$userName.$userPassword.$userProfile.$userBytesOut.$userLimitBytesOut.”%0A”)
kemudian tambahkan variabel di baris ini, kira-kira menjadi seperti ini :set output ($output.$userName.$userPassword.$userProfile.$userBytesOut.$userLimitBytesOut.$disable.”%0A”)
Mas mau tanya dong itu kan di telegram kita ketik perintah “/hi” atau perintah di menu yang tersedia, nah kalau misalkan mau tambah perintah baru “/reset” nambah perintahnya dimana ya? File nya kah?
Perintah /hi itu dari script tg_cmd_hi tinggal ganti saja nama script itu dengan nama awal tg_cmd_,untuk perintah lain lain jg sama buat nama script dengan awal tg_cmd_
iya mas makasih baru cek blognya udah bisa sekarang …. saya mau tanya kenapa kok gak jalan perintahnya harus di gugah dulu dengan run…
schedulernya sudah jalan? dengan menjalankan script tg_getUpdates
bang kalo perintah untuk ngemunculin jumlah user yg hanya konek hotspot(tidak login) sama jumalah user yg login aja gimana bang caranya? Mohon bantuannya bang.
aduh mas saya coba sih bisa …. tapi router reboot terus gak berenti… :v mau delete script harus cepet2 hmmm untung bisa… jadi gak berani lagi reboot dgn telegram
sy sudah coba traceroute dg max-hops=10 dan count=10. Cuman untuk menampilkan hasil traceroutenya ini yang masih bingung seperti apa. Minimal memunculkan list ip addressnya saja. Mohon pencerahannya pak…
mantab pak. Berarti tinggal cari cara kirim file txt nya ke email atau bot telegram y? Ada masukan pak?
kalau kirim file ke email gampang bisa pake cara ini
/tool e-mail send to=”alamat email” subject=”subjeknya” body=”isi email” file=”TRACEROUTE.txt” start-tls=yes
kalau kirim file lewat telegram belum nyoba hehe
kalau pakai /tool fetch url=”https://api.telegram.org/botXXXX/sendMessage\?chat_id=-YYYYYY ….bisa g y?
Lum coba juga krn kurang paham codingnya pak..:)
Nemu source code ini: /tool fetch url=”https://api.telegram.org/botXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX/sendDocument\?chat_id=XXXXXXXXX” http-method=post http-data=”document=http://test.ru/test.jpg” keep-result=no;
tapi statusnya failure (400 bad request)
pak, kalau ingin traceroute ke ip tertentu bagaimana scriptnya ya?
sudah sya coba tapi tidak mau reboot, mikrotiknya isi konfirmasi terlebih dahulu yakin mau di reboot atau tidak, kalau sudah balas y baru dya mau reboot bang
pak minta bantuannya … kok saya menjalankan script seperti ini tidak bisa ya pak untuk merubah shared user pada user profile …? mohon bantuannya ..
“:if ($param1=”shared”) do={
/ip hotspot profile set shared-users=$param3 [find name=$param2]
/ip hotspot user profiles remove [find name=$param2]
$send chat=$chatid text=(“User: $param2 SHARED USER diganti menjadi $param3…”) mode=”Markdown”
}”
pak minta bantuannya .. saya jalankan script dibawah ini untuk menampilkan userprofile yang ada kok gak bisa ya pak?.. mohon bantuannya..
:if ($params=”view”) do={
:local output
:foreach activeIndex in=[//ip hotspot user profile find] do={
:local user (“*Name*”.[/ip hotspot user profile get value-name=”name” $activeIndex].”%0A”)
:local rate (“*Rate*”.[/ip hotspot user profile get value-name=”rate-limit” $activeIndex].”%0A”)
:set output ($output.$user.$rate.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
tetap nda bisa pak
:if ($params=”view”) do={
:local output
:foreach activeIndex in=[/ip hotspot user profile find] do={
:local user (“*Name*”.[/ip hotspot user profile get value-name=”name” $activeIndex].”%0A”)
:local rate (“*Rate*”.[/ip hotspot user profile get value-name=”rate-limit” $activeIndex].”%0A”)
:set output ($output.$user.$rate.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
terimakasih pak.. alhamdulillah bisa ..cuman pesannya kok tidak berjalan ya pak?
Kalau hanya menjalankan mudah,tinggal ubah scriptnya menjadi tg_cmd_namascript, kemudian untuk di bot telegram perintahnya jadi /namascript..untuk mengirimkan pesan ke bot bisa menggunakan tool fetch url atau mencontoh script yg lain
Sama aja Pak, pertama tes yg di import, kemudian tes yg copy paste, hasilnya Sama, tp kalau tes perintah yg lain, bisa. Langsung Masuk di telegram, cuman tg_Updates aja yg gak mau. ?
ooh bot nya di set webhook ya, jd ga jalan di long polling..
untuk post data di mikrotik pakai tool fetch, tapi untuk post data seperti itu kurang tau formatnya seperti apa, itu untuk auto login wifi id ya mas?
Iya Pak, kalau di Linux, says pakai itu. Untuk autologin wifi.id. tp binging untuk di mikrotik. Sy tes pakai fetch, tp belom bisa.
thx om scriptnya, misal kasus gini gmn
di ip hotspot binding
address:192.168.1.1 type=bypassed comment=rumah1
address:192.168.1.2 type=bypassed comment=rumah2
di telegram cukup ketik
/ping rumah1
bisa nggak seperti itu? parameter apa aja yg harus dirubah/ditambahi
terima kasih sebelumnya
Mas, kalau di run manual scriptnya jalan, tapi kalau di triger via TG, dan run manual schedulernya, kenapa begini ya.. padahal sebelumnya normal, dan tidak ada perubahan
Script sepertinya ga ada masalah, coba cek lagi chat id/bot id..atau coba jalankan di browser getUpdates bot (perintahnya cari di google), bagaimana hasilnya
selmat malam mas..
terimakasih sebelumnya script nya sangat bermanfaat..
cuman setelah saya terapkan log mikrotik terus menerus muncul kayak gini,
cara mengatasinya gimana bang?
telegram configuration file has ben loaded
ftch file tg_getaupdate download
telegram configuration file has ben loaded
ftch file tg_getaupdate download
telegram configuration file has ben loaded
ftch file tg_getaupdate download
telegram configuration file has ben loaded
ftch file tg_getaupdate download
Mas, jika saya ingin kirim pesan text 3 baris ke MOXA lan to serial converter dg (misal) perintah “/kirim” dari bot telegram melalui ip:port tertentu di mikrotik bisa g?
perimisi tanya, sudah lama pakai bot ini sudah normal selama setahun lebih. tetapi baru-baru ini kendala sering tidak respon botnya. tetapi jika diganti botnya jalan.
sebelumnya update ros 6.46.7 (long-term) ( sebelum update masih normal )
kira-kira yg jadi masalah bot atau ros?
Membuat BOT Telegram Untuk Server VPN Remote [PART1]
srip yang harus di rubah / di tambah yang mana ya admin
supaya bot vpn saya bisa di akses semua orang ?
tg_config
:put “tg: Load config”
:local config {
“botAPI”=”(sudah saya ganti pakai bot admin )”;
“defaultChatID”=”(sudah saya ganti pakai id telegram saya admin)”;
“trusted”=”(kalau yang ini saya bingung mau di isi apa supaya semua orang bisa akses bot vpn saya)”;
“storage”=””;
“timeout”=1;
}
kalau di jalankan memang sudah bisa merespon…
saya ingin menambahkan untuk menghapus mac address dan reset counters ketika menjalankan scrip ini, mohon bantuannya…
mohon maaf bang izin bertanya, saya sudah mengikuti script yang diatas tetapi kok respon dari si botnya kaga ngerespon yak, kira-kira itu kesalahannya dmana?? makasih
Assalamualaikum Master
Maaf mau tanya kalau “(API BOT TELEGRAM ANDA)” maksudnya gimana ya sama “(CHAT ID BOT ANDA)”
, Terimakasih master atas bantuan berbagi ilmunya
Permisi Master Mau tanya kalau “(API BOT TELEGRAM ANDA)” dan “(CHAT ID BOT ANDA)” , ini maksudnya apa ya atau harus di isi apa, terimakasih master ilmunya
Persiapan
Pada pembuatan pembayaran otomatis dengan Payment Gateway Midtrans ada beberapa tahapan dan kebutuhan yang perlu disiapkan diantaranya yaitu:
Akun Payment Gateway...
Kirim
Maaf, tidak semua pesan bisa saya balas
Mohon maaf, tidak semua pesan bisa saya balas, silahkan ceritakan dengan singkat apa yang Kamu butuhkan. Terimakasih
bang kalo ngemunculin user online aja gimana caranya
kalau hanya menampilkan jumlah yg online saja pakai dibawah ini dengan nama tg_cmd_hotspot, nanti dipanggil di bot telegramnya menggunakan perintah /hotspot
[php]
:local send [:parse [/system script get tg_sendMessage source]]
:local hotspot [:len [/ip hotspot active find]]
:put $params
:put $chatid
:put $from
:local text "Router Id:* $[/system identity get name] * %0A\
Hotspot users: _$hotspot online_"
$send chat=$chatid text=$text mode="Markdown"
:return true
[/php]
untuk scriptnya di taru di mana gan??? mohon pencerahannya gan
Semua script disimpan di system-script, nama script sesuaikan dengan panduan…lalu buat sebuah schedule baru dengan perintah untuk menjalankan script dengan nama “tg_getUpdates”
untuk chat ID sama TRUSTED ID bedanya yang mana gan
kalau chat id itu chat idnya Bot telegram kalau trusted id itu chat idnya akun telegram yg digunakan untuk berinteraksi dengan bot tersebut
sy masih blm berhasil juga,, mungkin dalam memasukan Chat ID dan Trusted Id yang salah
Untuk chat id (chat id bot telegram), trusted id (chat id akun telegram kita yang di ijinkan berinteraksi dengan bot)
cara mengetahui trusted id nya gimana ya pa?
trusted itu CHAT ID, jd untuk mengetahui chat id bisa melalui perintah getUpdates atau melalui bot get id
pak kalau kita mau tambah perintah masukkinnya bagaimana? misal kita akan menjalankan script tertenetu langsung dipanggil lewat telegram
dengan mengetikan di telegram dengan perintah /hi, atau /cpu untuk monitoring kondisi cpu,, apabila ingin menambahkan script lain yg akan di jalankan di telegram buat script tersebut dengan nama tg_cmd_(namascript), lalu untuk menjalankan di telegram dengan perintah /namascript
alhamdulillah sudah jalan, saya menjalankan perintah sederhana dengan script: /ip hotspot ip-binding set numbers=13 type=regular (untuk mengubah binding ke regular) dan /ip hotspot ip-binding set numbers=13 type=bypassed (untuk bypass) . cuma saya gak tau cara nambahin agar telegram dapat respond bahwa script tersebut status regular/bypass, kalau dari script2 punya bapak diatas adakah sebagai contoh buat script ini? terimakasih
Pak mau tanya lagi, didalam group saya tambahkan user lain, kenapa ketika user tersebut merintah bot milik kita gak bisa ya? apa ada yang salah dengan setingan group? atau memang bot hanya bisa diperintah oleh sipembuat? Terimakasih
di script tg_config ada trusted, itu untuk menambahkan chat id yang bisa digunakan untuk berkomunikasi dengan bot
sudah saya coba, tetapi yg berfungsi hanya /ping, /hotspot
belum berhasil, ketika di cek pada log ada tulisan : could not run script tg_getUpdate:not enough permissions
Sama sy juga di log muncul error seperti itu..salah dimna ya???
Di system-script dan system-scheduler, untuk masing-masing script cek di bagian kolom “policy” apakah diberi akses write/read…
Om, mau tanya.. Router Utama saya dikasih DNS Statik ke Switch_A –> 192.168.88.1
menggunakan terminal, bisa ping menggunakan “ping Switch_A” dan responnya reply.
Yang jadi pertanyaan, apakah menggunakan bot telegram bisa ping menggunakan Switch_A?
saya coba hanya bisa menggunakan IP 192.168.88.1.
Mohon pencerahannya.
Terima kasih..
Masih belum faham gan, scriptnya nanti disimpan di rrouter apa di switch_A.. switch_A ini apakah sebuah dns name static dengan ip 192.168.88.1? kalau untuk ping apakah menggunakan ip atau dns name static saya rasa sama saja
Halo bang….
Kalau script buat monitoring sistem log di mikorik gimana ya bang?….
maunya kalau ada new log di mikrotik itu bisa send 1 baris otomatis ke telegram.
Thanks responnya
Cek tutor ini bang barangkali nyambung, Monitoring Log Mikrotik Dikirim Ke Bot Telegram
mas perintah /hi koq gak respont ya?
klo manual runscrip func_cmd_hi keluar menu
Cek perintah di terminal /system script run tg_getUpdates, respon nya bagaimana ya?
coba bantu yaa…
ganti nama script “func_cmd_hi” dengan “tg_cmd_hi”
CMIIW
Betul mas ternyata karena itu fungsi /hi ga jalan, terimakasih koreksinya…
Try to invoke external script tg_cmd_h
no such item
klo error ny bgini d bagian akhir gmna ya gan?
script tg_cmd_hi sudah dibuat belum gan?
keterangan script tidak ditemukan
Permisi mas, Kok ini yang bisa cuma ping ya ? hi maupun cmd salah , padahal sudah saya input script maupun di telegram bot nya benar
script lengkap bisa di unduh disini gan https://github.com/sopyanyayan/scriptmikrotik, pindahkan ke file manager mikrotik lalu di new terminal jalankan perintah import file=Telegram.rsc. Lalu di script edit bot id dan chat id nya
semua script sudah terimport semua
api, chat id , dan trusted juga sudah diganti
tapi nga ada respon sama sekali ketika melakukan comand /hi maupun runscript?
mohon solusinya
Untuk mengeceknya coba matikan dulu scheduler nya…di bot telegram coba jalankan perintah contoh /hi lalu di new terminal winbox coba jalankan “system script run tg_getUpdates”, disana akan muncul keterangan sukses maupun terjadi error…
pak mau nanya, waktu coba jalanin di terminal yg /system script run tg_getUpdates kok ktnya syntax error (line 30 column 27) ya, yg salah dmn nya ya pak?
Kemungkinan ada script/karakter yg terlewat, di copas ulangi saja scriptnya ada di sini https://pastebin.com/u/sopyanx, atau pakai perintah di new terminal /tool fetch url=”https://labkom.co.id/file/script_telegram.rsc” mode=http lalu jalankan perintah /import file=script_telegram.rsc
gan alamat nya not found, link terkini yang mana ya yang terupdate
Maaf, mau tanya, apakah script ini bisa di implementasikan pada ROS 5.20?
saya belum nyoba di ros versi 5
permisi, thanks tutornya sebebelumnya, tapi saya misal ingin membuat command input ping dengan ip sesuai keinginan saja bagaimana pak. misal: ping 192.168.1.100, nanti muncul result ping ke ip tsb. jadi ip-nya ditentukan waktu ngetik, kasarannya ping sembarang device dude lewat telegram. terima kasih.
sudah saya tes berhasil.. dengan perintah /ping ip (ip addressnya)
script bisa di copas disini https://pastebin.com/7N4XmQfr
alhamdulillah, jazaakallahukhair, manteb pak, berhasil saya coba,
sebelumnya sempet bingung kok ip nya 88 semua waktu ping, eh ternyata script diatas di replace ke ‘tg_cmd_ping”, kirain buat script baru, hehehe. terima kasih master.
untuk mendapatkan value var terakhir pada suatu url gimana master?
mohon info. maaf kalo bahanya belepotan, soalnya masih tahap belajar..
bisa di contohkan seperti apa mas, saya belum faham hee
master untuk reboot mikrotik cemn gunakannya ya di telegram
buat script dengan nama tg_cmd_reboot, isi script dengan system reboot…scheduler untuk tg_getUpdates jangan terlalu cepat,kalau tidak nanti Mikrotikmu error/booting terus.
Apakah script ini bisa digunakan untuk lebih dari 2 router ?
Bisa
Pak untuk /cpu kok error ya ? cuman bisa /ping
di jalankan manual muncul errornya gimana ya? di new terminal run tg_getUpdates
fungsi healthnya mungkin mikrotiknya tidak support health, hapus bagian health.
pak apakah punya script untuk tg_cmd_reboot ?
“system reboot” kalau itu bagaimana? tp schedule untuk menjalankan tg_getupdate jangan terlalu cepat karena kalau terlalu cepat nanti mikrotiknya sudah bootingnya
Selamat Pagi Pak Yayan Sopyan, saya ingin bertanya perihal Script Hostpot dan CPU itu tidak jalan pak, Untuk Error nya berupa seperti ini pak, Kira-kira errornya di bagian mana ya pak ? (Untuk yang bintang-bintang itu saya sensor pak) Terimakasih
Finished to read updates.
message id=52
update id=**********
from id=*********
first name=*****
last name=
username=
in chat=***********
command=/cpu
cmd=
params=
Try to invoke external script tg_cmd_cpu
********
Reyota
ambiguous value of value-name, more than one possible value matches input
pakai ROS versi brapa ya? trus RB nya pakai apa? coba di cek di di winbox “system-health” apakah tersedia?
Saya Pakai Router OS v6.36 pak
untuk hasil pengecek an system healt seperti ini pak hasilnya
system health print
state: disabled
state-after-reboot: enabled
brati system health disable ya (ga ada) jd perintah cpu ga nampil karena system health nya itu ga ada
Pak saya ingin Bertanya perihal penambahan parameter pada script tersebut, misal saya ingin menambahkan param4 dan param5 apa yang haru saya edit Pak Terimakasih. apakah yang harus saya pelajari agar paham perihal penambahan parameter tersebut
:local send [:parse [/system script get tg_sendMessage source]]
:local param1 [:pick $params 0 [:find $params ” “]]
:local param2 [:pick $params ([:find $params ” “]+1) [:len $params]]
:local param3 [:pick [:pick $params ([:find $params ” “]+1) [:len $params]] ([:find [:pick $params ([:find $params ” “]+1) [:len $params]] ” “]+1) [:len [:pick $params ([:find $params ” “]+1) [:len $params]]]]
:if ([:len [:find $param2 ” “]]>0) do={
:set param2 [:pick [:pick $params ([:find $params ” “]+1) [:len $params]] 0 [:find [:pick $params ([:find $params ” “]+1) [:len $params]] ” “]]
} else={
:set param3 “”
}
:put $params
:put $param1
:put $param2
:put $param3
:put $chatid
:put $from
Kira-kira begini di bot telegram ketika mengetikan perintah “/tes dd dd dd dd” ketika script dijalankan kira kira muncul seperti ini. jadi untuk menambahkan param4 di edit saja dari param3
Finished to read updates.
message id=400
update id=xxx
from id=xxxx
first name=Yayan
last name=(Labkom.co.id)
username=LabkomTV
in chat=xxx
command=/tes dd dd dd dd
cmd=tes
params=dd dd dd dd
Try to invoke external script tg_cmd_tes
no such item
baris ini diabaikan saja dulu karena ini hanya kondisional saja kalau param terbaca 0, atau bisa dicoba di hapus biar ga bingung
:if ([:len [:find $param2 ” “]]>0) do={
:set param2 [:pick [:pick $params ([:find $params ” “]+1) [:len $params]] 0 [:find [:pick $params ([:find $params ” “]+1) [:len $params]] ” “]]
} else={
:set param3 “”
}
Sebentar Pak saya masih kurang mengerti apa yang harus ditambahkan saat kita mendeklarasikan :local param4, yang dasarnya kita dapat dari :local param3
Saya Coba Menambahkan 5 Param pada script pak yayan sopyan, yang menjelaskan tentang ppp . tetapi hasilnya seperti ini pak. ketika saya mengirim pesan seperti ini /ppp test2 test2 default 172.17.17.1 172.17.17.2
Finished to read updates.
message id=89
update id=xxxxxxxxx
from id=xxxxxxxxxx
first name=Reyota
last name=
username=
in chat=xxxxxxxxx
command=/ppp test test default 172.17.17.1 172.17.17.2
cmd=
params=
Try to invoke external script tg_cmd_ppp
test test default 172.17.17.1 172.17.17.2
test
test
default 172.17.17.1/32 172.17.17.2/32
default 172.17.17.1/32 172.17.17.2/32
default 172.17.17.1/32 172.17.17.2/32
954109239
Reyota
invalid value for argument address
ini perintah untuk menambahkan di ppp secret (nama, password, profile, local address, remote address) seperti itu ya? kalau di coba di new terminal udah benar belum perintahnya? kayanya variabel address dia ga di kenali, coba pakai “local”?
Jika Saya coba secara langsung di terminal benar seperti itu pak tulisannya
/ppp secret add name=test password=test service=pptp pro
file=default local-address=172.17.17.1 remote-address=172.17.17.2 dan bisa terbuat di secret
untuk penambahan di script botnya seperti ini pak di script line paling bawah
:if ($param1!=”password” and $param1!=”profile” and $param1!=”enable” and $param1!=”disable” and $param1!=”delete” and $param1!=”print”) do={
/ppp secret add name=$param1 password=$param2 service=pptp profile=$param3 local-address=$param4 remote-address=$param5
$send chat=$chatid text=(“User PPP %0AUsername: $param1 %0APassword: $param2 %0AProfile: $param3 %0ABerhasil dibuat…”) mode=”Markdown”
}
Saya masih blm berhasil juga, mungkin dalam memasukan Chat ID dan Trusted Id yang salah. Kalau cara mengetahui ID Bot nya gimana ?
melihat BOT ID bisa melalui akun fatherbot, CHAT ID bisa melalui akun get id atau getUpdates, chat id dan trusted disamakan saja kecuali bot tersebut bisa digunakan oleh akun selain pemilik BOT
untuk membuat menu dalam menu bagaimana yahh pak?
maksudnya sub menu yah, tinggal duplikat saja menu /hi nanti buat submenu dengan nama tg_cmd_submenunya, nanti di menu /hi tinggal tambahkan saja /submenunya
Kemarin saya coba buat menu dengan nama /about hasil dari diplicat /hi tapi stelah sy update malah ndak bisa manggil menu nya pkek /about..
Apa mngkin ada perintah untuk bisa di kenali /about walaupun hasil duplikat? Makasih min
Nama scriptnya about apa? Apakah tg_cmd_about?
iya pak namanya tg_cmd_about
ada pesan error “failure: closing connection: 149.154.167.220:443 (5)” ketika tg_getUpdates, mohon petunjuk
sepertinya ada yg kurang dari scriptnya, coba buat ulang saja atau coba dari sumbernya disini https://www.coders.in.ua/2017/12/05/telegram-bot-mikrotik/
baik Pak Yayan, dicoba..terimakasih
link na kosong pak…
kok saya di sistem scheduler nya ga muncul ya? terus pas import file nya muncul ini “input does not match any value of policy” boleh dibantu pak?
/tool fetch url=”https://labkom.co.id/file/script_telegram.rsc” mode=http
/import file=script_telegram.rsc
import file dengan perintah tersebut?
kemungkinan ada karakter yg terlewat ketika memanggil scriptnya
Mau Tanya:
1. untuk menambahkan fungsi status User itu Enable dan Disable di Tab USER bagaimana ya?
2. di Mikrotik rb750gr3 saya os Winbox v6.38.7, dibagian HotspotUser – Limits, itu kok tidak bisa input quota 1G. 1MiB/1MB, tapi harus isi 1073741824
itu karena OS nya kah? atau karena apa ya?
1. :local disable (“*Uptime:* “.[/ip hotspot user get value-name=”disable” $activeIndex].”%0A”), tinggal ditambahkan saja di variabel set output, nanti nilai yg muncul true/false
2. Coba isi dengan 1G/1M/1K, kalau memang ga bisa bisa jadi dari os nya
:if ($params=”all”) do={
:local output
:foreach activeIndex in=[/ip hotspot user find] do={
:local userName (“*Username:* “.[/ip hotspot user get $activeIndex name].”%0A”)
:local userPassword (“*Password:* “.[/ip hotspot user get $activeIndex password].”%0A”)
:local userProfile (“*Profile:* “.[/ip hotspot user get $activeIndex profile].”%0A”)
:local userBytesOut (“*Quota Used:* “.[/ip hotspot user get $activeIndex bytes-out].”%0A”)
:local userLimitBytesOut (“*Total Quota:* “.[/ip hotspot user get $activeIndex limit-bytes-out].”%0A”)
:set output ($output.$userName.$userPassword.$userProfile.$userBytesOut.$userLimitBytesOut.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
:local disable (“*Uptime:* “.[/ip hotspot user get value-name=”disable” $activeIndex].”%0A”), tinggal ditambahkan saja di variabel set output, nanti nilai yg muncul true/false
dimasukkan dibagian mananya?
saya ingin tambahkan status:
User : Enable / Disable
sebelum baris :set output ($output.$userName.$userPassword.$userProfile.$userBytesOut.$userLimitBytesOut.”%0A”)
kemudian tambahkan variabel di baris ini, kira-kira menjadi seperti ini :set output ($output.$userName.$userPassword.$userProfile.$userBytesOut.$userLimitBytesOut.$disable.”%0A”)
Mas mau tanya dong itu kan di telegram kita ketik perintah “/hi” atau perintah di menu yang tersedia, nah kalau misalkan mau tambah perintah baru “/reset” nambah perintahnya dimana ya? File nya kah?
Buat script dengan nama tg_cmd_reset
Mas kalau mau ditambah perintah untuk di telegram nya gimana ya? Kan disitu pakai “/hi” kalau mau ditambah baru apa harus dari scriptnya?
Perintah /hi itu dari script tg_cmd_hi tinggal ganti saja nama script itu dengan nama awal tg_cmd_,untuk perintah lain lain jg sama buat nama script dengan awal tg_cmd_
selamat sore pak yayan .. mau tanya tentang cara mengetahui besaran bandwidth yang telah user aktif gunakan menggunakan bot telegram? apakah bisa ?
Mungkin bisa dikembangkan dari tutorial yg ini, bandwith bisa diambil dari statistic tiap user hotspot https://labkom.co.id/mikrotik/membuat-dan-mengatur-user-hotspot-mikrotik-dengan-bot-telegram-tanpa-php
iya pak yayan terimakasih… saya coba dulu nambah scriptnya
{“ok”:true,”result”:[{“update_id”:174506549,
“message”:{“message_id”:67,”from”:{“id”:579615753,”is_bot”:false,”first_name”:”Dalih”,”last_name”:”Septa”,”username”:”Dalih_Septa”,”language_code”:”en”},”chat”:{“id”:-334782370,”title”:”VOUCHER MUNENG”,”type”:”group”,”all_members_are_administrators”:true},”date”:1576796245,”text”:”/cpu”,”entities”:[{“offset”:0,”length”:4,”type”:”bot_command”}]}}]}
klau dari laporan update ini, mana yg dinamakan chat id dan trusted om?
soalnya belum berhasil.
mohon bimbingannya.
Cara ceknya script tg_getUpdates dijalankan di new terminal, nanti akan muncul keterangan errornya…kalau dari sana ga terlihat errornya dimana
no such item mas kira 2 apa yang salah
Sepertinya saat pemanggilan script tidak di temukan, bisa jadi karena case sensitif mas, besar kecil perlu diperharikan
sudah berhasil mas tapi ketika saya akan edit profile malah yang terjadi edit password mohon pencerahannya
ada kesalahan di scrip tg_cmd_hotspot..
cari baris ini
:if ($param1=”setprofil”) do={
lalu dibawahnya ubah “password” menjadi “profile”
/ip hotspot user set password=$param3 [find name=$param2]
kira kira menjadi seperti ini:
/ip hotspot user set profile=$param3 [find name=$param2]
cek lagi scriptnya mas, di fungsi edit profile kata “password” ubah menjadi “profile”
iya mas makasih baru cek blognya udah bisa sekarang …. saya mau tanya kenapa kok gak jalan perintahnya harus di gugah dulu dengan run…
schedulernya sudah jalan? dengan menjalankan script tg_getUpdates
bang kalo perintah untuk ngemunculin jumlah user yg hanya konek hotspot(tidak login) sama jumalah user yg login aja gimana bang caranya? Mohon bantuannya bang.
brati dia mengeceknya dari hotspot-host dengan hotspt-active, selisinya brati user yang konek tp tidak login ya?
Iya bang. Bisa ngecek jumlah hostpot yg login dan jumlah yang hanya konek. Gimana ya bang? Mohon bantuannya bang.
saya pikirkan dulu bang
Iya bang, terinakasih sebelumnya.
untuk rebootnya di saya gak jalan kira2 apanya mas
cek di scriptnya ada tg_cmd_reboot gak, kalau ga ada buat saja dengan isi script “system reboot”
aduh mas saya coba sih bisa …. tapi router reboot terus gak berenti… :v mau delete script harus cepet2 hmmm untung bisa… jadi gak berani lagi reboot dgn telegram
itu karena schedulernya terlalu cepat, minimal interval schedulernya 1 menit kalau mau jalankan reboot lewat bot telegram hehe
mohon ijin pak, jika ingin melakukan traceroute ke alamat IP tertentu bisa kah? Mhn bantuan scriptnya pak
gimana ya belum kepikiran kalau tracerout lewat bot hehe
sy sudah coba traceroute dg max-hops=10 dan count=10. Cuman untuk menampilkan hasil traceroutenya ini yang masih bingung seperti apa. Minimal memunculkan list ip addressnya saja. Mohon pencerahannya pak…
kalau pakai cara ini bagaimana?
:execute {/tool traceroute 8.8.8.8 duration=5} file=TRACEROUTE
mantab pak. Berarti tinggal cari cara kirim file txt nya ke email atau bot telegram y? Ada masukan pak?
kalau kirim file ke email gampang bisa pake cara ini
/tool e-mail send to=”alamat email” subject=”subjeknya” body=”isi email” file=”TRACEROUTE.txt” start-tls=yes
kalau kirim file lewat telegram belum nyoba hehe
kalau pakai /tool fetch url=”https://api.telegram.org/botXXXX/sendMessage\?chat_id=-YYYYYY ….bisa g y?
Lum coba juga krn kurang paham codingnya pak..:)
Nemu source code ini: /tool fetch url=”https://api.telegram.org/botXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX/sendDocument\?chat_id=XXXXXXXXX” http-method=post http-data=”document=http://test.ru/test.jpg” keep-result=no;
tapi statusnya failure (400 bad request)
pak, kalau ingin traceroute ke ip tertentu bagaimana scriptnya ya?
gimana ya belum kepikiran kalau tracerout lewat bot hehe
kalo gini kenapa ya pak ?
failure: cannot open output file
file tidak ada, cek lagi cek lagi huruf kecil besarnya
Bang scrip untuk reboot mikrotik’nya mna yaa ?
buat aja script dengan nama tg_cmd_reboot, isinya /system reboot, asal schedule jangan terlalu cepat
sudah sya coba tapi tidak mau reboot, mikrotiknya isi konfirmasi terlebih dahulu yakin mau di reboot atau tidak, kalau sudah balas y baru dya mau reboot bang
sudah sya coba bang, tapi tidak mau nge,reboot. dari mikrotik’nya isi konfirmasi terlebih dahulu klo sudah balas y baru dya mau nge’reboot
kalau dijalankan melalui script seharusnya tanpa konfirmasi
pak minta bantuannya … kok saya menjalankan script seperti ini tidak bisa ya pak untuk merubah shared user pada user profile …? mohon bantuannya ..
“:if ($param1=”shared”) do={
/ip hotspot profile set shared-users=$param3 [find name=$param2]
/ip hotspot user profiles remove [find name=$param2]
$send chat=$chatid text=(“User: $param2 SHARED USER diganti menjadi $param3…”) mode=”Markdown”
}”
Maksudnya merubah nilai shared-users di user profile?
jadi scriptnya cukup pakai yg ini saja
/ip hotspot user profile set shared-users=$param3 [find name=$param2]
kira-kira menjadi seperti ini
:if ($param1="shared") do={
/ip hotspot user profile set shared-users=$param3 [find name=$param2]
$send chat=$chatid text=("User: $param2 SHARED USER diganti menjadi $param3…") mode="Markdown"
}
pak minta bantuannya .. saya jalankan script dibawah ini untuk menampilkan userprofile yang ada kok gak bisa ya pak?.. mohon bantuannya..
:if ($params=”view”) do={
:local output
:foreach activeIndex in=[//ip hotspot user profile find] do={
:local user (“*Name*”.[/ip hotspot user profile get value-name=”name” $activeIndex].”%0A”)
:local rate (“*Rate*”.[/ip hotspot user profile get value-name=”rate-limit” $activeIndex].”%0A”)
:set output ($output.$user.$rate.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
Foreach activeindex coba tanda // hapus 1 jd /IP hotspot user profile
tetap nda bisa pak
:if ($params=”view”) do={
:local output
:foreach activeIndex in=[/ip hotspot user profile find] do={
:local user (“*Name*”.[/ip hotspot user profile get value-name=”name” $activeIndex].”%0A”)
:local rate (“*Rate*”.[/ip hotspot user profile get value-name=”rate-limit” $activeIndex].”%0A”)
:set output ($output.$user.$rate.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
terimakasih pak.. alhamdulillah bisa ..cuman pesannya kok tidak berjalan ya pak?
Ga berjalan perintahnya atau ga nampil balasan
Berjalan pak ..cuman tidak ada balasan .. nda tampil pesan kalau shared usernya udah berubah …
Sudah di cek bot nya apakah bisa mengirim pesan? Dan konfigurasi script tg_config sudah benar?
sudah pak … yang lain bisa seperti perintah “/ip hotspot add” setelah add user ada pemberitahuan bahwa user sudah dibuat
Pak kenapa waktu sy bikin perintah /public keluarnya begini? DDNS : : IP Public :
Di IP–>Cloud apakah aktif?
mati pak tidak aktiv
atau karena saya pakai vpn di mikrotiknya?
itu datanya dari IP–>Cloud
Kalau ga aktif brati datanya ga ada
terus kalau peritah reboot di terminal keluarnya begini
Try to invoke external script tg_cmd_reboot
Reboot, yes? [y/N]:
kenapa ya Pak?
cek script tg_cmd_reboot apakah sudah benar isinya /system reboot ?
Kalau jalankan reboot, schedule jangan terlalu cepat nanti mikrotik bootlop
iya sudah betul /system reboot tapi keluar Try to invoke external script tg_cmd_reboot
Reboot, yes? [y/N]:
Kalau dijalankan dengan bot apakah jalan?
pak kalo untuk run script tertentu di mikrotik lewat telegram gimana script’a pak, belajar sana sini masih gak mudeng juga
Kalau hanya menjalankan mudah,tinggal ubah scriptnya menjadi tg_cmd_namascript, kemudian untuk di bot telegram perintahnya jadi /namascript..untuk mengirimkan pesan ke bot bisa menggunakan tool fetch url atau mencontoh script yg lain
[[email protected]] > system script run tg_getUpdates
trusted=717170620;trusted=-265368341
botID=1069384228:AAFS1hXWIBjF6ma44KGYcbQmo7Q9fYn7CAw
storage=
timeout=5
Reading updates…
>> /tool fetch dst-path=”tg_get_updates.txt” url=”https://api.telegram.org/bot1069384228:AAFS1hXWIBjF6ma44KGYcbQmo7Q9fYn7CAw/getUpdates?timeout=5&limit=1″
Error getting updates
Failed get updates
Salahnya dimana yah Pak,
buatnya di copas atau di import ya?
coba import ulang aja
Sama aja Pak, pertama tes yg di import, kemudian tes yg copy paste, hasilnya Sama, tp kalau tes perintah yg lain, bisa. Langsung Masuk di telegram, cuman tg_Updates aja yg gak mau. ?
tg update kan untuk memeriksa apakah ada pesan baru atau tidak, ketika mengrimkan perintah ke bot apakah ada balasan?
Kalau saya tes ketik /start di bot telegream, gak ada balasan, kalau saya tes lewat comand mikrotik, /system script run tg_getUpdates
trusted=717170620;trusted=-265368341
botID=1069384228:AAFS1hXWIBjF6ma44KGYcbQmo7Q9fYn7CAw
storage=
timeout=5
Reading updates…
>> /tool fetch dst-path=”tg_get_updates.txt” url=”https://api.telegram.org/bot1069384228:AAFS1hXWIBjF6ma44KGYcbQmo7Q9fYn7CAw/getUpdates?timeout=5&limit=1″
Error getting updates
Failed get updates
.
saya pakai yg punya pak yayan,
:global TGLASTMSGID
:global TGLASTUPDID
:local fconfig [:parse [/system script get tg_config source]]
:local http [:parse [/system script get func_fetch source]]
:local gkey [:parse [/system script get tg_getkey source]]
:local send [:parse [/system script get tg_sendMessage source]]
:local cfg [$fconfig]
:local trusted [:toarray ($cfg->”trusted”)]
:local botID ($cfg->”botAPI”)
:local storage ($cfg->”storage”)
:local timeout ($cfg->”timeout”)
:put “cfg=$cfg”
:put “trusted=$trusted”
:put “botID=$botID”
:put “storage=$storage”
:put “timeout=$timeout”
:local file ($storage.”tg_get_updates.txt”)
:local logfile ($storage.”tg_fetch_log.txt”)
#get 1 message per time
:local url (“https://api.telegram.org/bot”.$botID.”/getUpdates?timeout=$timeout&limit=1″)
:if ([:len $TGLASTUPDID]>0) do={
:set url “$url&offset=$($TGLASTUPDID+1)”
}
:put “Reading updates…”
:local res [$http dst-path=$file url=$url resfile=$logfile]
:if ($res!=”success”) do={
:put “Error getting updates”
return “Failed get updates”
}
:put “Finished to read updates.”
:local content [/file get [/file find name=$file] contents]
:local msgid [$gkey key=”message_id” text=$content]
:if ($msgid=””) do={
:put “No new updates”
:return 0
}
:set TGLASTMSGID $msgid
:local updid [$gkey key=”update_id” text=$content]
:set TGLASTUPDID $updid
:local fromid [$gkey block=”from” key=”id” text=$content]
:local username [$gkey block=”from” key=”username” text=$content]
:local firstname [$gkey block=”from” key=”first_name” text=$content]
:local lastname [$gkey block=”from” key=”last_name” text=$content]
:local chatid [$gkey block=”chat” key=”id” text=$content]
:local chattext [$gkey block=”chat” key=”text” text=$content]
:put “message id=$msgid”
:put “update id=$updid”
:put “from id=$fromid”
:put “first name=$firstname”
:put “last name=$lastname”
:put “username=$username”
:local name “$firstname $lastname”
:if ([:len $name]<2) do {
:set name $username
}
:put "in chat=$chatid"
:put "command=$chattext"
:local allowed ( [:type [:find $trusted $fromid]]!="nil" or [:type [:find $trusted $chatid]]!="nil")
:if (!$allowed) do={
:put "Unknown sender, keep silence"
:return -1
}
:local cmd ""
:local params ""
:local ltext [:len $chattext]
:local pos [:find $chattext " "]
:if ([:type $pos]="nil") do={
:set cmd [:pick $chattext 1 $ltext]
} else={
:set cmd [:pick $chattext 1 $pos]
:set params [:pick $chattext ($pos+1) $ltext]
}
:local pos [:find $cmd "@"]
:if ([:type $pos]!="nil") do={
:set cmd [:pick $cmd 0 $pos]
}
:put "cmd=”
:put “params=”
:global TGLASTCMD $cmd
:put “Try to invoke external script tg_cmd_$cmd”
:local script [:parse [/system script get “tg_cmd_$cmd” source]]
$script params=$params chatid=$chatid from=$name
coba download dari sini, lalu di import..
https://drive.google.com/file/d/1hDuun6tSMVnR60rktUrjU0lUMlheGm30/view?usp=sharing
Makasih Banyak Pak yayan, ternyata dar telegram saya.
tes https://api.telegram.org/bot1069384228:AAFS1hXWIBjF6ma44KGYcbQmo7Q9fYn7CAw/getupdates
error 409, Setelah saya reset
https://api.telegram.org/bot1069384228:AAFS1hXWIBjF6ma44KGYcbQmo7Q9fYn7CAw/SETWebhook.
Baru Suksess, Semoga kebaikan pak yayan, selalu diberi reski yang berlimpah, selalu diberikan kesehatan.. AMIN.
Pak yayan, Saya mau tanya, di linux saya pakai
wget –post-data=”username=”username@spin2&password=password” “https://welcome2.wifi.id/authnew/login/check_login.php?ipc=$ipwan&gw_id=1234567&mac=”$mac”&redirect=&wlan=123456/567890” untuk post data, kalau di gunakan dimikrotik, itu seperti gimana yah?
ooh bot nya di set webhook ya, jd ga jalan di long polling..
untuk post data di mikrotik pakai tool fetch, tapi untuk post data seperti itu kurang tau formatnya seperti apa, itu untuk auto login wifi id ya mas?
Iya Pak, kalau di Linux, says pakai itu. Untuk autologin wifi.id. tp binging untuk di mikrotik. Sy tes pakai fetch, tp belom bisa.
thx om scriptnya, misal kasus gini gmn
di ip hotspot binding
address:192.168.1.1 type=bypassed comment=rumah1
address:192.168.1.2 type=bypassed comment=rumah2
di telegram cukup ketik
/ping rumah1
bisa nggak seperti itu? parameter apa aja yg harus dirubah/ditambahi
terima kasih sebelumnya
brati ini satu perintah ada 2 ping yg di jalankan ya?
[admin@MikroTik] > /import file=script_telegram.rsc
cannot open import file, file does not exist
bagaimana ini bang??? gak bisa jalan
coba cari0 file rsc yg lain,,filenya ga ditemukan,apa sudah di upload ke file manager
bang untuk skriptnya ini menggunakan bahasa apa ya bang, soalnya baru belajar script mikrotik juga
Mas, kalau di run manual scriptnya jalan, tapi kalau di triger via TG, dan run manual schedulernya, kenapa begini ya.. padahal sebelumnya normal, dan tidak ada perubahan
system script run tg_getUpdates
Finished to read updates.
No new updates
0
Ga ada update, coba tes ganti bot telegram
Finished to read updates.
No new updates
0
ada solusi pak. di run manual via terminal begini.. data sudah valid padhaal
Script sepertinya ga ada masalah, coba cek lagi chat id/bot id..atau coba jalankan di browser getUpdates bot (perintahnya cari di google), bagaimana hasilnya
punya saya ko cuma ping nya saja ya yg jalan sam force dns update
script untuk mengetahu user dan password wifi apa ya mas?
untuk perintah hanya cek voucher yg baris mana ya bos
ada di tutorial yg lain bang
Kalau cuma munculin untuk cek user aja pakai yg mana ya mas
mohon ijin bang, nama script tga_cmd itu maksudnya apa ya bang?
itu script untuk perintah, misalnya perintah untuk menjalankan system reboot
ada yang tau caranya hide log fetch yang ada di log? kan sering banget tuh fetch file dalam interval 10 detik.
Di system’ logging bisa di ubah, yg “info” ditambah jadi “info”,”system”,”account”
selmat malam mas..
terimakasih sebelumnya script nya sangat bermanfaat..
cuman setelah saya terapkan log mikrotik terus menerus muncul kayak gini,
cara mengatasinya gimana bang?
telegram configuration file has ben loaded
ftch file tg_getaupdate download
telegram configuration file has ben loaded
ftch file tg_getaupdate download
telegram configuration file has ben loaded
ftch file tg_getaupdate download
telegram configuration file has ben loaded
ftch file tg_getaupdate download
bisa tidak ditampilkan log tersebut dengan cara mengedit system logging di topics info dengan menambahkan system dan account
pak yayan kon di saya ga jalan ya kalo yang punya ini https://github.com/dwichan0905/ jalan manun ada kendala di bagian hotspot
mas, jika mau ngirim pesan text 4 baris ke perangkat MOXA LAN to serial converter dengan (misal) perintah “/kirim” melalui IP:port tertentu bisa ga?
Mas, jika saya ingin kirim pesan text 3 baris ke MOXA lan to serial converter dg (misal) perintah “/kirim” dari bot telegram melalui ip:port tertentu di mikrotik bisa g?
bang yang /hotspot ditelegram gak jalan kenapa ya bang?
di cek manual dulu di terminal,
/system script run tg_getUpdates
nanti akan muncul errornya kenapa ga jalan
perimisi tanya, sudah lama pakai bot ini sudah normal selama setahun lebih. tetapi baru-baru ini kendala sering tidak respon botnya. tetapi jika diganti botnya jalan.
sebelumnya update ros 6.46.7 (long-term) ( sebelum update masih normal )
kira-kira yg jadi masalah bot atau ros?
https://core.telegram.org/bots/api
ada update di api telegram
jadi ini gara-gara update api telegramnya jadi ngga work gitu ya?
yang perlu di ubah yang mana ya? ada tutornya?
Bang
Script untuk cek ppp online ada gak bang
halo om
kok saya coba gak jalan ya ?
untuk default kan
bot api = token
default chat id = di ganti apa kang
trusted nya gmn ya ?
kok saya gak jalan botnya
saya sapa malah di cuekin
setelah di cek di New Terminal, Pesan yg muncul :
[admin@AWC_Server] /system script> run tg_getUpdates
tg: Load config
trusted=xxxxxx;trusted=-xxxxxx
botID=1784580743:AAGlEr5xxxxxx
storage=
timeout=1
Reading updates…
>> /tool fetch dst-path=”tg_get_updates.txt” url=”https://api.telegram.org/bot1784580743:AAGlEr5xxxxxx/getUpdates?timeout=1&limit=1″
Finished to read updates.
No new updates
0
[admin@AWC_Server] /system script>
00:16:57 echo: system,error,critical login failure for user admin from 192.168.100.254 via winbox
[admin@AWC_Server] /system script>
Salahnya dimana ya bg?
ada update api telegram sepertinya harus menyesuaikan lagi
Di bagian mana ya mas yang di ganti.
Ada tutorial yang barunya kah mas.
Mengingat TG_Getupdates ini adalah intinya buat bisa send command .
Masih belum ada update terbarukah?
pak scrip /hi saya muncule kayak gtu.. ketika saya panggil /hotspot gak mau muncul
Router ID: GendutNet
==================
MENU TERSEDIA
==================
/help
/start
/cpu
/interface
– show
– show all
/dhcp
– lease
/hotspot
– help
– session
> count
> showall
> deauth-by-user
> deauth-by-mac
> deauth-by-ip
– add
– delete
– disable
– enable
– setprofile
– change-password
/ping to
/monitoring
– interface
– cpu
– ram
– memory
/public
/enablehotspot
/disablehotspot
/forceupdateddns
/reboot
kalo untuk kick user yang sudah terlist di dhcp-lease bisa tidak ya ?
bang cara menambahkan logo ceklis maupun silang scripnya apa aja..ini saya ngga ajdi terus..
Permisi mau nanya, jadi saya mau menambahkan hostpot status dengan membuat tg_cmd_hotspotstatus
tetapi outputnya tidak keluar walaupun tidak ada erorr
:local send [:parse [/system script get tg_sendMessage source]]
:put $params
:put $chatid
:put $from
:local output
:foreach activeIndex in=[/ip hotspot active find] do={
:local activeUser (“*Username:* “.[/ip hotspot active get value-name=”user” $activeIndex].”%0A”)
:local activeAddress (“*Address:* “.[/ip hotspot active get value-name=”address” $activeIndex].”%0A”)
:local activeMACAddr (“*MAC Address:* “.[/ip hotspot active get value-name=”mac-address” $activeIndex].”%0A”)
:local activeLoginBy (“*Login by:* “.[/ip hotspot active get value-name=”login-by” $activeIndex].”%0A”)
:local activeUptime (“*Uptime:* “.[/ip hotspot active get value-name=”uptime” $activeIndex].”%0A”)
:local activeidtime (“*idle:* “.[/ip hotspot active get value-name=”idle-time” $activeIndex].”%0A”)
:set output ($output.$activeUser.$activeAddress.$activeMACAddr.$activeUptime.$activeidtime.$activeLoginBy.”%0A”)
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
Permisi admin mau tanya ,
Membuat BOT Telegram Untuk Server VPN Remote [PART1]
srip yang harus di rubah / di tambah yang mana ya admin
supaya bot vpn saya bisa di akses semua orang ?
tg_config
:put “tg: Load config”
:local config {
“botAPI”=”(sudah saya ganti pakai bot admin )”;
“defaultChatID”=”(sudah saya ganti pakai id telegram saya admin)”;
“trusted”=”(kalau yang ini saya bingung mau di isi apa supaya semua orang bisa akses bot vpn saya)”;
“storage”=””;
“timeout”=1;
}
return $config
Pak cara menampilkan cek daftar voucher yg belum digunakan bagaimana cara buat perintahnya..
Bang ini punya saya kok *failure: item with this name already exists
Padahal udah aku hapus yang di script
mau nanyak.. di scrip tg_cmd_hotspot
disitu ada banyak menu yg bisa di gunakan, saya hanya mengambil 1 menu aja seperti ini
:local send [:parse [/system script get tg_sendMessage source]]
:local param1 [:pick $params 0 [:find $params ” “]]
:local param2 [:pick $params ([:find $params ” “]+1) [:len $params]]
:local param3 [:pick [:pick $params ([:find $params ” “]+1) [:len $params]] ([:find [:pick $params ([:find $params ” “]+1) [:len $params]] ” “]+1) [:len [:pick $params ([:find $params ” “]+1) [:len $params]]]]
:if ([:len [:find $param2 ” “]]>0) do={
:set param2 [:pick [:pick $params ([:find $params ” “]+1) [:len $params]] 0 [:find [:pick $params ([:find $params ” “]+1) [:len $params]] ” “]]
} else={
:set param3 “”
}
:put $params
:put $param1
:put $param2
:put $param3
:put $chatid
:put $from
:if ($param1=”enable”) do={
/ip hotspot user enable [find name=$param2]
$send chat=$chatid text=(“User: $param2 Berhasil di enable”) mode=”Markdown”
}
$send chat=$chatid text=(“$output”) mode=”Markdown”
}
kalau di jalankan memang sudah bisa merespon…
saya ingin menambahkan untuk menghapus mac address dan reset counters ketika menjalankan scrip ini, mohon bantuannya…
cara agar bisa get hdd free sama total hdd / disk gimana ya?
mohon maaf bang izin bertanya, saya sudah mengikuti script yang diatas tetapi kok respon dari si botnya kaga ngerespon yak, kira-kira itu kesalahannya dmana?? makasih
Assalamualaikum Master
Maaf mau tanya kalau “(API BOT TELEGRAM ANDA)” maksudnya gimana ya sama “(CHAT ID BOT ANDA)”
, Terimakasih master atas bantuan berbagi ilmunya
Permisi Master Mau tanya kalau “(API BOT TELEGRAM ANDA)” dan “(CHAT ID BOT ANDA)” , ini maksudnya apa ya atau harus di isi apa, terimakasih master ilmunya
pak mau tanya jika kita ingin mendapatkan laporan bandwith tergunakan di interface tertentu setiap hari bagaimana ya… apakah bidsa di script..
mantaps sungguh luar biasa ilmu-nya, trimakasih pak yayan sopyan S.Kom… semoga sehat selalu
Cara sceduler dengan setiap tanggal 1 bagaimana om? bisanya cuman memberi hari pada intervalnya saja/ Untuk script setiap tanggal 1 belum ada
Pak mau nanya apakah script ini berjalan di ROS 7x
Pak mau tanya apakah script ini berjalan di router os 7x, Thnx.