Primeiro bot do Discord para envio de lembrete: do zero ao deploy! #PASSO2️⃣
Tags: javascript, tutorial, discord, beginners
Published: 2023-06-05 16:53:54

Nesse post eu irei mostrar a parte do deploy, mas antes é fundamental testarmos a nossa aplicação, então vamos lá!!

---

## Passo 1: Testando a aplicação.
Conforme comentei no post anterior, na nossa função **sendMessage** configuramos um cronJob para ele mandar mensagem em um determinado tempo, para testarmos, vamos mudar o tempo para o horário de agora (no meu caso, vou mudar para 11:05) dessa forma não precisamos esperar até o horário que configuramos para ele funcionar no dia-a-dia.

```javascript
const jobOne = schedule.scheduleJob("5 11 * * *", () => {
  sendMessage("11:05", "Correr");
});
```

Alterado o horário, no terminal vamos rodar o comando abaixo.

```shell
$ node bot.js
```

Ao chegar no horário que configuramos, deverá vir a notificação no discord da seguinte forma (isso se tudo foi feito corretamente, claro).


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ubnu925gn144ttjhg4x0.jpg)

Se aparecer a notificação dessa forma, sinal de que funcionou e podemos publicá-lo.

---

## Passo 2: Publicando a aplicação.
Agora chegou a grande hora do nosso bot brilhar ✨, então boraaa!

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gznaxkawc3622qsohiey.gif)

Para fazer o deploy da minha aplicação eu vou utilizar a plataforma [Discloud](https://discloudbot.com/), acessando a plataforma, vai na opção **ENTRAR >> Login Discord (Legacy)**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ztn36lb3dxno866tuai3.png)

Feito isso, ele vai pedir para autorizar, só ir na opção **Authorize**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cbsur4y65zkzhsazgvrb.png)

Após logar na plataforma, no rodapé da página, vai no ícone do Discord para acessar o servidor deles.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0mmhsnghh4hlj3vvxbjc.png)

Dentro do servidor, você deve ir no canal **🔌Commands**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9sb68sw4eadzbhuh0j7x.png)

Dentro do canal, alguns comandos precisarão ser rodados, mas antes, vamos arrumar o nosso projeto para enviá-lo para a plataforma.

---

## Passo 3: Compactando projeto e criando arquivo **discloud.config**.
Vamos começar criando o arquivo na raíz do projeto chamado de **discloud.config** (e acredite, o nome realmente tem que ser esse, caso contrário, não funciona). Dentro desse arquivo, deverá ser adicionado o seguinte trecho.

```json
NAME=Lembretes 
AVATAR=https://www.liberiangeek.net/wp-content/uploads/2019/03/notification-logo.png
TYPE=bot
MAIN=bot.js
RAM=100
AUTORESTART=false
VERSION=latest
APT=tools
```
_Obs.: Para saber mais sobre esse arquivo de configuração, bata acessar [**Discloud Documentation - discloud.config**](https://docs.discloudbot.com/discloud.config/configurar)_

Agora que já criamos esse arquivo, precisamos compactar o projeto, mas antes você deve excluir a pasta **node_modules** e o arquivo **package-lock.json** e aqui vai um detalhe muito importante, ele precisa ser compactado em **.zip**, caso contrário a plataforma não aceita, inclusive, o próprio windows fornece essa opção, só clicar com o botão direito do mouse na pasta e ir na opção **compress to ZIP file**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/du6f5ma2dnkd5bo5oczr.png)

Feito isso, o arquivo zipado está pronto.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wgt80xlfo1eg5k2f2uom.png)

Agora sim, podemos dar continuidade no deploy.

---

## Passo 4: Rodando comandos no canal **🔌Commands**.
Inicialmente você deve informar no canal o seguinte comando.

```
.up
```
O bot da Discloud te responderá com uma mensagem para que siga as instruções no canal que eles irão linkar na mensagem.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/avc05v4mu0rxi3wro28i.png)

Dentro desse canal que eles criam, irá pedir solicitar algumas perguntas, a primeira é o ID da aplicação.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qr2yz3qq4nxfaph0fqrb.png)

Para conseguir esse ID, você deverá acessar o [Developer Portal](https://discord.com/login?redirect_to=%2Fdevelopers%2Fapplications) e ir no menu **General Information** e copiar o **Application ID**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/03y9f0wuz0fafuz10qxy.png)

Após informado no canal o ID da aplicação, a próxima pergunta é para que você digite o nome ou o caminho do arquivo principal, no nosso caso é só informar o **bot.js**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yaspxsgr6oynadlxtde8.png)

Próxima pergunta é para que digite a quantidade de RAM para seu bot, no nosso caso pode colocar apenas **100**.

_Obs.: 100 é a quantidade máxima para quem tem o Discord gratuito, para quem tem a versão paga, vai depender do plano._

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l6d4qnidg5gars3sna3c.png)

Por fim, ele vai pedir para que envie o arquivo **.zip**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g413hhsmen16hclevedu.png)

Só aguardar ele concluir e se tudo der certo, você será redirecionado para esse canal **app-logs** mostrando a mensagem que _**"a instância do seu bot Lembretes#0856 está on-line!"**_

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y8nsc3323jph809uibgj.png)

_Obs.: Utilizando esse Discloud, a cada 15 dias tem que rodar o comando abaixo no canal **🔌Commands**._
```shell
.rw
```
---

E é isso ai, embora a explicação tenha sido beeeeem longa, eu procurei deixar tudo detalhadinho passo a passo para que você, assim como eu que nunca mexeu com a criação de bot e publicação, possa entender da melhor forma possível como você consegue ir do 0 ao deploy! 

O código completo está no meu [github](https://github.com/JacksonSantin/bot-discord/).

Muito obrigado!