Como transformar qualquer script em um bot do Telegram

Se você precisa de um simples bot do Telegram capaz de executar scripts (escritos em qualquer idioma) e responder com texto e imagens, clique em cat. Lá você encontrará uma história sobre um mecanismo de bot que faz o que você deseja.



Bot Telegram



Uma pequena lista de recursos do motor:



  • O motor pode servir a vários bots de uma vez
  • O bot executa scripts (escritos em qualquer idioma)
  • , ( )
  • ( )
  • 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, .



?



, . . - , — . .



Mas eu gostaria de desenvolver o mecanismo para incorporar: destacar alguma parte simples dele que pudesse ser conectada por uma biblioteca a qualquer programa Go. Convencionalmente, se você já tem um microsserviço para ... para que serve ... mesmo para renderizar cenas 3D, você pode incorporar um chat de bot nele em uma ou duas linhas para diagnóstico / monitoramento / controle operacional ... Isso, me parece, seria útil. Na verdade, você pode fazer isso agora. Não é muito conveniente.




All Articles