🤖 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: 👇🏻

SQL8V.gif

Muito fácil e pratico mesmo, da pra fazer algumas coisas uteis com ele tipo pesquisas.

Também é possível criar suas próprias `actions`! Recentemente criei um bot de mangás. Utilizei o `lowbot` para colher as informações de qual mangá o usuário gostaria de ler, e o `gomanga` para buscar e exibi-los. Irei publicar um artigo sobre esse projeto no futuro.

Ótimo artigo! Parabéns pelo projeto, uma sugestão seria adicionar uma opção interativa para geração deste arquivo .yml!

Verdade! Vou adicionar essa melhoria, valeu pela dica 😃