Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evoluindo Arquitetura #1

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,15 +105,6 @@ Após realizar o [tutorial](/docs/setup_telegram.md) de exportação de todas va

**Antes de seguir adiante. Importante:** As variáveis de ambiente são necessárias para o correto funcionamento do bot, por isso não esqueça de exportá-las.

Edite o arquivo **credentials.yml** e descomente as linhas referentes ao telegram:

```sh
telegram:
access_token: ${TELEGRAM_TOKEN}
verify: ${TELEGRAM_BOT_USERNAME}
webhook_url: ${TELEGRAM_WEBHOOK}
```

Depois execute o bot no telegram:

```sh
Expand Down
84 changes: 60 additions & 24 deletions docs/setup_telegram.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,89 @@
# Setup do bot no Telegram

## Crie um bot no Telegram
Para configurar e ter seu bot no telegram, você precisa seguir os seguintes passos:
1. [Criar um bot no telegram com BotFather](#criar-um-bot-no-telegram-com-botfather)
1. [Executar o ngrok](#executar-o-ngrok)
1. [Exportar as variáveis](#exportar-as-variáveis)
1. [Atualizar o arquivo de credenciais](#atualizar-o-arquivo-de-credenciais)

Converse com o [@BotFather do Telegram](https://t.me/BotFather) e crie um bot de teste unicamente seu seguindo as instruções dele.
## Criar um bot no telegram com BotFather

## Exporte as variáveis do seu bot
Converse com o [@BotFather do Telegram](https://t.me/BotFather) e crie um bot pra você seguindo as instruções dele.
Você vai sair de lá com duas informações importantes: o `token` e o `username` do seu bot.
Segura elas aí, pois vamos precisar em breve.

Após escolher um nome para seu bot, o @BotFather lhe dará um token para utilizar para acessar a API do Telegram. Adicione ambos no [arquivo de configurações do bot](../docker/bot-telegram.env), como a seguir. Substitua o TELEGRAM_TOKEN pelo token lhe enviado pelo @BotFather e TELEGRAM_BOT_USERNAME pelo nome do seu bot.

## Executar o ngrok

Precisamos configurar um webhook para fazer a comunicação do nosso bot com o telegram.
Para isso, vamos utilizar o [ngrok](https://ngrok.com/download).
Nesse link, você vai fazer o download. E executar o comando de unzip do arquivo.

Faça o download, extraia o arquivo que foi baixado e execute o comando a seguir.

```sh
TELEGRAM_BOT_USERNAME=username_do_bot
TELEGRAM_TOKEN=token_fornecido_pelo_BotFather
./ngrok http 5001
```
Esse comando vai executar o ngrok na porta 5001. Ele vai ocupar o terminal em que for executado.

## Execute o ngrok
**Atenção:** O conector do Telegram está utilizando a porta 5001 como padrão.
Caso queira mudar, somente altere a porta utilizada pelo no Makefile.

Após a etapa anterior, é necessário utilizar o [ngrok](https://ngrok.com/download) para expor determinada porta para ser utilizado
pelo Telegram.

Conforme a seguir, execute o ngrok na porta 5001.
## Exportar as variáveis

### Telegram

Após escolher um nome para seu bot, o @BotFather lhe dará um token para utilizar para acessar a API do Telegram.
Adicione ambos no [arquivo de configurações do bot], como a seguir.
Substitua o `TELEGRAM_TOKEN` pelo token lhe enviado pelo BotFather e `TELEGRAM_BOT_USERNAME` pelo nome do seu bot.

```sh
./ngrok http 5001
TELEGRAM_BOT_USERNAME=username_do_bot
TELEGRAM_TOKEN=token_fornecido_pelo_BotFather
```

**Atenção:** O conector do Telegram está utilizando a porta 5001 como padrão. Caso queira mudar, somente altere
a porta utilizada pelo no Makefile.
### NGROK

Enquanto o ngrok estiver em execução, ele apresentará uma série de informações da sessão atual.
Copie a url do campo Forwarding com o protocolo `HTTPS` e cole no [arquivo de configurações do bot].
Substitua apenas o `your_webhook_server`. Mantenha o restante da linha

## Exporte a URL do Webhook
```sh
TELEGRAM_WEBHOOK=your_webhook_server/webhooks/telegram/webhook
```
> Lembre-se: sempre que executar o ngrok essa url deve ser atualizada.

Enquanto o ngrok estiver em execução, ele apresentará uma série de informações da sessão atual. Copie a url do campo Forwarding com o protocolo HTTPS e cole no [arquivo de configurações do bot](../docker/bot-telegram.env). ela será similar à seguinte.

Ao final de realizar essas configurações, seu [arquivo de configurações do bot] deve estar de acordo com o exibido logo abaixo:

```sh
TELEGRAM_WEBHOOK=link_do_ngrok/webhooks/telegram/webhook
TELEGRAM_BOT_USERNAME=<nome-do-seu-bot>
TELEGRAM_TOKEN=<token-do-seu-bot>
TELEGRAM_WEBHOOK=<link-do-seu-webserver-ngrok>/webhooks/telegram/webhook
```

::Lembre-se::: sempre que executar o ngrok essa url deve ser exportada.
## Atualizar o arquivo de credenciais

Edite o arquivo credentials.yml e descomente as linhas referentes ao telegram:
```
telegram:
access_token: ${TELEGRAM_TOKEN}
verify: ${TELEGRAM_BOT_USERNAME}
webhook_url: ${TELEGRAM_WEBHOOK}
```
Não precisa trocar nenhuma informação, apenas descomentar essa seção do arquivo.

## Execução do bot no telegram

Ao final de realizar essas configurações, seu [arquivo de configurações do bot](../docker/bot-telegram.env) deve estar de acordo com o exibido logo abaixo:
Com isso, é possível realizar a execução do bot com o comando

```sh
TELEGRAM_BOT_USERNAME=lappisbot
TELEGRAM_TOKEN=token
TELEGRAM_WEBHOOK=your_webhook_server/webhooks/telegram/webhook
```
make run-telegram
```

Assim que rodar o comando, você pode conversar com o seu bot no telegram.
Basta procurar ele pelo username que você criou.

Com isso, é possível realizar a execução do bot seguindo os passos do [README](../README.md)
Para mais comandos e informações, veja o [README](https://github.com/lappis-unb/rasa-ptbr-boilerplate/blob/main/README.md)

[arquivo de configurações do bot]: https://github.com/lappis-unb/rasa-ptbr-boilerplate/blob/main/env/bot-telegram.env