Jika Anda memerlukan bot Telegram sederhana yang mampu menjalankan skrip (ditulis dalam bahasa apa pun) dan merespons dengan teks dan gambar, maka di bawah cat. Di sana Anda akan menemukan cerita tentang mesin bot yang melakukan apa yang Anda inginkan.

Daftar singkat fitur mesin:
- Mesinnya bisa melayani beberapa bot sekaligus
- Bot menjalankan skrip (ditulis dalam bahasa apa pun)
- , ( )
- ( )
- HTTP, , "" ( cron-)
: , IP-, SSL-… , . , , .
, .
Go. , root-. , , , , .
:
cd tmp
git clone https://github.com/michurin/cnbot.git
cd cnbot
go build ./cmd/...
./cnbot
( ) , . , .
, . : Telegram.
(config.yaml):
bots:
firstBot:
token: "22222222:AAAAAAAAAAAAAA"
script: "/usr/bin/true"
( - , /bin/rm). (-i):
./cnbot -i -c config.yaml
, .
( -i)
./cnbot -c config.yaml
Telegram-.
user 500050880 is not allowed
user_id ( ),
bots:
firstBot:
token: "22222222:AAAAAAAAAAAAAA"
script: "/bin/echo"
allowed_users: [500050880]
, echo script. ( ) echo-. . hi, Hi!, -n hi.
(-n echo). : ; , , , ; .
. /bin/echo :
#!/bin/sh
env
Hello!
BOT_TEXT=Hello!
BOT_FROM_FIRSTNAME=Alexey
BOT_NAME=firstBot
BOT_CHAT=500050880
BOT_FROM=500050880
, , ID , , ( ; , ).
, . , white list . ID — . . demo.sh.
, PATH . , .
#!/bin/sh
echo '%!PRE'
env | sort
. markdown, . demo.sh.
, stdout:
#!/bin/sh
curl -qfs https://golang.org/lib/godoc/images/footer-gopher.jpg
, "empty", , "".
demo-, .
HTTP bind_address :
bots:
firstBot:
token: "22222222:AAAAAAAAAAAAAA"
script: "/bin/echo"
allowed_users: [500050880]
bind_address: ":9091"
:
echo "ok" | curl -qfsX POST --data-binary @- "http://:9091/500050880"
, , . , output . , .
multipart/form-data:
curl -qfsX POST -F to=500050880 -F msg=ok "http://:9091"
, . , , . , demo-. http- . readme , , , .
, , — .
!
...
..., , .
- . , . , , . , . .
, . : , , VPN, … , , - , .
, , , Telegram API . - bash+curl+jq, , .
. . , , - .
, . (), … , , . , , , .
2018 Go , , Go. :-) , , Go . , Go, Go, "" ( ).
. cnbot, .
?
, . . - , — . .
Tetapi saya ingin mengembangkan mesin menuju kemampuan penyematan: untuk memilih beberapa bagian sederhana darinya yang dapat dihubungkan oleh perpustakaan ke program Go apa pun. Secara konvensional, jika Anda sudah memiliki layanan mikro untuk ... apa gunanya ... bahkan untuk menampilkan adegan 3D, Anda dapat menyematkan bot chat ke dalamnya dalam satu atau dua baris untuk diagnostik / pemantauan / kontrol operasional ... Ini, menurut saya, akan menjadi berguna. Nyatanya, Anda bisa melakukannya sekarang. Itu sangat tidak nyaman.