如何将任何脚本变成电报机器人

如果您需要一个简单的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场景也有什么好处,您可以在其中一两行中嵌入一个机器人聊天程序,以进行操作诊断/监视/控制...在我看来,这是有用。实际上,您现在就可以这样做。只是不是很方便。




All Articles