Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gabrielrf/clienteschat

A melhor maneira de atender seus clientes no Telegram!
https://github.com/gabrielrf/clienteschat

atendimento atendimento-virtual clientes telegram telegram-bot

Last synced: 27 days ago
JSON representation

A melhor maneira de atender seus clientes no Telegram!

Awesome Lists containing this project

README

        

# [Clientes.Chat](https://clientes.chat)

* [Sobre o serviço](#sobre-o-serviço)
* [Configuração](#configuração)
* [Banco de Dados](#banco-de-dados)
* [Variáveis de Ambiente](#variáveis-de-ambiente)
* [Docker](#docker)
* [Python](#python)
* [AWS Lambda](#aws-lambda)
* [Contribuição](#contribuição)

## Sobre o serviço

A maneira mais organizada de atender seus clientes no Telegram!

Para mais informações e ajuda, [visite o site](https://clientes.chat).

## Configuração

### Banco de Dados

O bot exige um banco de dados MongoDB em funcionamento.

#### Container com banco de dados local

O arquivo `docker_compose_local_mongodb.yml` mostra como seria o deploy de um conteiner com o bot e outro com o banco de dados, já com a comunicação entre eles funcionando corretamente.

#### Container com baco de dados remoto

Para este caso, utilize o arquivo `docker_compose_remote_mongodb.yml`.

### Variáveis de ambiente

`TOKEN`: Token do bot gerado no [@BotFather](https://t.me/BotFather);

`SAC_CHANNEL`: ID do canal em que serão feitos os atendimentos;

`SAC_GROUP`: ID do grupo que será vinculado ao canal para atendimentos;

`BOT_USERNAME`: Nome de usuário do bot que será exibido na mensagem inline;

`MONGO_CON`: String de conexão ao banco de dados;

`LOG_DAYS`: Tempo de retenção do histórico das mensagens no banco. Útil para que as respostas à mensagens funcionem adequadamente;

`NOTIFY_ADMINS`: `1` para notificar administradores em caso de novas mensagens. `0` para não notificar;

`START_MSG`: Mensagem de resposta ao comando de `/start`. Utilize `
` para quebras de linhas;

`RESTART_MSG`: Mensagem de resposta quando um atendimento é reaberto. Utilize `
` para quebras de linhas;

`END_MSG`: Mensagem enviada quando um atendimento é finalizado. Utilize `
` para quebras de linhas;

WEBHOOK`: Caso a variável seja definida, o bot irá funcionar com webhook. Caso contrário, com polling.

### Docker

![Docker Pulls](https://img.shields.io/docker/pulls/gabrielrf/clienteschat)

Escolhido o arquivo ideal para seu banco de dados e feitas as configurações das [variáveis de ambiente](#variáveis-de-ambiente), renomeie o arquivo para `docker-compose.yml` execute o comando:

`docker-compose up -d`

### Python

> Para usar este método é necessário ter um banco de dados MongoDB já em funcionamento.

Clone o repositório e edite as variáveis do arquivo `bot.py` conforme a explicação das [variáveis de ambiente usadas em docker](#variáveis-de-ambiente).

Instale as dependências:

```
pip install -r requirements.txt
```

Execute o bot:

```
python bot.py
```

### AWS Lambda

> Para mais informações, visite: [serverless.com](https://www.serverless.com/framework/docs/getting-started)

O bot está pronto para funcionar com *webhook* em uma função AWS Lambda.

Edite o arquivo `serverless_sample.yml` seguindo as [variáveis de ambiente](#variáveis-de-ambiente) explicadas anteriormente. Renomeie o arquivo para `serverless.yml` e execute:

```
export TOKEN=12345678:AAAAAAAAAAAAAAAAAAAAABBBBBBBCCCC
export WEBHOOK=True
serverless deploy
```

Isto irá criar a função e demais componentes necessários para o funcionamento do serviço. Copie a URL exibida no fim da execução e a defina como uma variável de ambiente. Execute:

```
python3 set_webhook.py
serverless deploy
```

## Contribuição

**Toda contribuição é bem vinda!**