So verwandeln Sie ein Skript in einen Telegramm-Bot

Wenn Sie einen einfachen Telegramm-Bot benötigen, der Skripte ausführen kann (in einer beliebigen Sprache geschrieben) und mit Text und Bildern antwortet, dann unter cat. Dort finden Sie eine Geschichte über eine Bot-Engine, die macht, was Sie wollen.



Telegrammbot



Eine kurze Liste der Motorfunktionen:



  • Der Motor kann mehrere Bots gleichzeitig bedienen
  • Bot führt Skripte aus (in jeder Sprache geschrieben)
  • , ( )
  • ( )
  • 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, .



?



, . . - , — . .



Aber ich möchte die Engine in Richtung Einbettbarkeit entwickeln: einen einfachen Teil daraus herausgreifen, der durch eine Bibliothek mit einem beliebigen Go-Programm verbunden werden kann. Wenn Sie bereits einen Microservice für ... wofür ist es gut ... auch zum Rendern von 3D-Szenen haben, können Sie herkömmlicherweise einen Bot-Chat in ein oder zwei Zeilen für die Betriebsdiagnose / -überwachung / -steuerung einbetten ... Dies scheint mir zu sein nützlich. Tatsächlich können Sie das jetzt tun. Es ist einfach nicht sehr bequem.




All Articles