🤖 LowBot: Crie seu bot com Go em 9 minutos
O LowBot é um projeto em Go que visa facilitar a criação de fluxos de bot.
🤔 Por que escolher o LowBot?
📚 Scripting YAML simples e intuitivo para criar e modificar fluxos de bot. 🧩 Flexibilidade para regras de negócios personalizadas e ações exclusivas. 📡 Integração fácil em diferentes canais e plataformas de comunicação.
Let's code!
⚠ Este tutorial possui como pré requisitos:
- ✅ Ter o Go instalado na máquina
- ✅ Obter um token do Telegram - Como obter?
Para começar, crie uma pasta para o tutorial e siga as etapas:
📝 Inicie o Go Modules.
go mod init lowbot
📦 Instale o LowBot.
go get github.com/chrissgon/lowbot
⚙️ Crie o arquivo flow.yaml
. Esse arquivo possui as especificações do nosso fluxo.
# O "name" define o nome do fluxo
name: lowbot
# O "steps" indica as etapas do fluxo
steps:
# O "init" é a etapa inicial
# Ela apenas indica o início do fluxo
init:
# O "next" escolhe a próxima etapa
# O valor "default" é obrigatório
next:
default: intro
intro:
# A "action" define a ação que a etapa vai realizar
# A action "Button" envia texto e botões para o usuário
action: Button
# No "parameters" definimos informações adicionais para a "action"
parameters:
# O "texts" informa os textos
texts:
- 👋🏻 Olá, bem vindo ao tutorial do lowbot 🤖
- Conseguiu entender a explicação?
# O "buttons" informa os botões (Sim, Não)
buttons:
- Sim
- Não
# O "next" consegue definir a próxima etapa com base na resposta
# O "default" indica a próxima etapa por padrão
next:
Sim: agradecimento
Não: desculpas
default: errado
agradecimento:
# A action "Text" apenas envia um texto
action: Text
parameters:
texts:
- 🤩 Que incrível!
- 📚 Confira nossa documentação em https://github.com/chrissgon/lowbot
next:
default: end
desculpas:
action: Text
parameters:
texts:
- 🥹 Que pena. Nesse caso você poderia me ajudar?
- 😅 Comente no artigo sua crítica, vou me esforçar para acertar na próxima!
next:
default: end
errado:
action: Text
parameters:
texts:
- 😕 Desculpe, não entendi!
next:
default: intro
# A etapa "end" indica o fim do fluxo
end:
action: Text
parameters:
texts:
- 👋🏻 Agradeço a atenção, até logo!
🎯 Crie o arquivo main.go
.
package main
import "github.com/chrissgon/lowbot"
func main() {
// Desabilita a persistência local
lowbot.AutoLoad = false
// Cria um fluxo
flow, _ := lowbot.NewFlow("./flow.yaml")
// Cria um canal (Usaremos o Telegram)
channel, _ := lowbot.NewTelegram()
// Cria uma persistência
persist, _ := lowbot.NewLocalPersist()
// Inicia o bot
lowbot.StartBot(flow, channel, persist)
}
💻 Execute a aplicação com o seguinte comando
TELEGRAM_TOKEN=<YOUR_TELEGRAM_TOKEN> go run main.go
✅ Pronto. Confira a seguinte mensagem no terminal
Bot is now running. Press CTRL-C to exit.
🤩 Agora basta acessar o seu bot no Telegram. O resultado deve ser esse: 👇🏻
Muito fácil e pratico mesmo, da pra fazer algumas coisas uteis com ele tipo pesquisas.
Ótimo artigo! Parab éns pelo projeto, uma sugestão seria adicionar uma opção interativa para geração deste arquivo .yml!