Ir para o conteúdo PET Sistemas de Informação Ir para o menu PET Sistemas de Informação Ir para a busca no site PET Sistemas de Informação Ir para o rodapé PET Sistemas de Informação
  • Acessibilidade
  • Sítios da UFSM
  • Área restrita

Aviso de Conectividade Saber Mais

Início do conteúdo

Bots para iniciantes



Fala pessoal, no PET Redação desta semana iremos entender mais sobre o que são Bots e como são feitos. Vamos desenvolver um exemplo utilizando um dos aplicativos de voz mais famosos atualmente: o Discord. Mas primeiro vamos entender um pouco da teoria.

O que são Bots?

Basicamente, Bots − abreviação de robots − são programas desenvolvidos para realizar alguma tarefa de maneira padronizada e repetitiva. Essa tarefa pode ser  feita de forma automática ou com base em algum comando gatilho feito por um humano ou outro programa. 

Para que eles são utilizados?

Os bots estão por toda internet exercendo tanto tarefas simples quanto algumas extremamente  complexas. Grandes empresas usufruem dos bots para automatizar tarefas ou como serviço atendimento (os chamados chatbots). O Google, por exemplo, utiliza Bots para rastrear e classificar as páginas na internet, melhorando assim a pesquisa dentro da web. Além disso, programadores comuns também recorrem a essa tecnologia para automatizar tarefas, como no Discord que existem bots que servem para pesquisar músicas ou gerenciar o servidor, baseando-se em comandos. 

Como são feitos?

A programação de um bot não tem uma linguagem específica, mas muitas linguagens possuem mais conteúdo sobre o assunto que outras.

Olhando bots prontos e funcionando imagina-se ser um trabalho extremamente complexo para um programador, mas não é bem assim. É claro que existem bots com uma complexidade inimaginável, utilizando até mesmo machine learning que interagem com o meio, aprendem e tentam reagir da melhor maneira possível, porém os bots que vemos diariamente, como no Discord e Twitter, operam com o auxílio de bibliotecas e APIs. 

Implementação

Depois de um pouco de teoria, agora partiremos para a implementação. Para essa redação desenvolveremos, como exemplo, um bot para o Discord utilizando o conhecido NodeJS. Para a implementação usaremos a IDE Visual Studio Code, ela facilita o desenvolvimento por ter um terminal/cmd integrado. Além disso, iremos instalar o NodeJS, que pode ser instalado tanto para Windows quanto para Linux (baixe a versão LTS). Após realizar os downloads e instalações, vamos criar uma pasta em qualquer diretório do seu computador (Área de trabalho ou alguma pasta de projetos caso você possua). Agora podemos abrir o VS Code e abrir a pasta criada a partir dele. Siga o caminho abaixo e procure a sua pasta criada: 

 

File → Open Folder

Agora iremos abrir o terminal do VS Code. Siga o caminho novamente:

Terminal → New Terminal

Seguindo essas instruções teremos o terminal aberto na nossa pasta selecionada, ficando dessa forma no meu caso: 

Para iniciarmos nosso projeto devemos utilizar o gerenciador de pacotes do NodeJS: o npm. Ele que irá lidar com todas as dependências do nosso projeto (caso queira saber mais sobre npm, clique aqui). Dessa forma, podemos rodar o seguinte comando:

Ao executar o comando vai ser criado um arquivo chamado package.json, que é um arquivo de configuração que guarda algumas informações e quais as dependências necessárias para a execução do programa.

Nossa única dependência vai ser a biblioteca Discord.js, que dará recursos para conseguirmos interagir com a API do Discord. Para instalar usaremos o npm novamente:

Vamos então criar o arquivo que iremos escrever código em breve. Seguindo este comando podemos criar o arquivo rapidamente:

Antes de iniciar o desenvolvimento precisamos configurar algumas coisas no Discord. Primeiramente, caso você não tenha uma conta no Discord, clique aqui. Após isso, criaremos um servidor onde o bot irá ficar, como na imagem a seguir:

Agora basta selecionar a opção Create My Own e nomeá-lo. Feito isso, agora vamos criar uma aplicação no discord e depois defini-la como um bot. Para isso, precisamos acessar a área de desenvolvimento do Discord, clique aqui. Clicando no link abrirá a página onde iremos criar e configurar nosso bot, para depois programá-lo. Basta clicar em New Application e nomeá-la, no meu caso: Meu Bot. Porém, nossa aplicação ainda não é um bot. Para resolvermos isso, podemos acessar a parte chamada Bot, como na imagem a seguir:

Clicando em Add Bot e confirmando, vai aparecer uma página com as informações do nosso Bot. Uma das mais importantes é o Token, logo abaixo do Username, pois ele é como uma senha para acessar o Bot e precisaremos dele futuramente. Mas agora vamos rolar um pouco para baixo e selecionar as permissões do nosso Bot. Como isso é um teste daremos permissão de administrador. Dessa forma:  

Depois de configurarmos nosso Bot podemos prosseguir adicionando ele ao servidor. Para isso, devemos acessar o General Information, no lado esquerdo da tela. Chegando lá, copie o Client ID, logo abaixo no Name, e acesse o seguinte link. Feito isso, defina a permissão de administrador novamente e cole o Client ID no local adequado. Por último, logo abaixo terá um link que foi gerado com base no seu ID. Clicando nele, seremos redirecionados para uma página onde podemos escolher o servidor de preferência para o Bot. Olhando o servidor criado podemos visualizar nosso Bot, porém ele está offline por enquanto. 

Finalmente iremos programar nosso Bot. Para começar, no arquivo bot.js, iremos criar uma constante para ter acesso aos recursos que a biblioteca discord.js fornece e outra para instanciar o Bot. Desse jeito:

Feito isso, o bot ainda estará offline, por isso, antes de executarmos nosso programa pela primeira vez, iremos adicionar apenas mais duas linhas de código. Lembra quando foi falado que o Token seria importante para o desenvolvimento? Então, agora iremos precisar dele para fazer o login do Bot e deixá-lo online. Acesse aquela mesma parte e copie o Token do Bot. Bem como a imagem abaixo: 

Copiado o Token, continuaremos o desenvolvimento criando uma constante para armazenar o Token e usaremos a função login(), a partir da constante bot criada anteriormente. Dessa forma:

Após isso, voltaremos para os comandos e executaremos o seguinte:

Executando esse comando estamos rodando nosso Bot pela primeira vez e ele estará online no servidor criado. Mas agora vamos fazer algumas automatizações nesse Bot. Para começar, criaremos uma função que de boas-vindas sempre que tivermos novos membros no servidor. Como na imagem a seguir:

Basicamente, ele cria um evento toda vez que um novo membro é adicionado ao servidor e executa a chamada Arrow Function em caso positivo. Essa função possui uma constante chamada channel, que procura o canal de texto para escrever a mensagem de boas-vindas (nesse caso o nome do canal de texto é o padrão de todos servidores: geral). Caso ela não ache o canal de texto, a função retorna sem nenhuma execução, porém, em caso afirmativo, é executado a função send(), a partir da constante channel, para enviar uma mensagem de recepção, seguido do nome de usuário do novo membro. Executando novamente o programa e adicionando um novo membro ao servidor temos este resultado:

Por último, vamos desenvolver algumas funções que são chamadas de acordo com alguns comandos pré definidos. podemos fazer dessa forma: 

Muito parecido com a função passada, porém com o parâmetro message sendo passado, esse evento analisa se as mensagens enviadas no canal de texto são aquelas dentro do if (!logo e !redacoes), utilizando o content, pois trata-se do conteúdo da mensagem. Caso seja escrito !logo, define-se uma constante attachment (como um acessório da mensagem, podendo ser uma imagem, um vídeo, etc), que recebe um link de uma imagem e é enviado uma mensagem, seguido da imagem definida anteriormente. Mas caso for escrito !redacoes será retornado um link para o site do PET Redação. Salvando e executando novamente nosso Bot encontramos o seguinte resultado:

Com isso, agora você entende um pouco mais sobre o funcionamento de um Bot e como eles são desenvolvidos. Caso tenha alguma dúvida ou queira um minicurso sobre o assunto futuramente, entre em contato com os petianos. O código desenvolvido nesta redação está neste repositório

Obrigado por acompanhar mais uma edição do PET Redação!

 

Referências:

 

Francisco Moreira Palermo.


Publicações Recentes