スクリプト(任意の言語で記述)を実行し、テキストと画像で応答できる単純なTelegramボットが必要な場合は、catの下にあります。そこには、あなたが望むことをするボットエンジンについての話があります。

エンジン機能の短いリスト:
- エンジンは一度に複数のボットにサービスを提供できます
- ボットはスクリプトを実行します(任意の言語で記述されています)
- , ( )
- ( )
- 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, .
?
, . . - , — . .
しかし、私は埋め込み可能性に向けてエンジンを開発したいと思います。ライブラリによって任意のGoプログラムに接続できるいくつかの単純な部分をそこから選び出すことです。従来、マイクロサービスをすでにお持ちの場合は、3Dシーンをレンダリングする場合でも、運用診断/監視/制御のためにボットチャットを1行または2行に埋め込むことができます...これは私には思えますが、有用。実際、あなたは今それをすることができます。あまり便利ではありません。