Loading repository data…
Loading repository data…
prefeitura-rio / repository
[Template] Implementação de um bot de WhatsApp usando Python para lidar com as mensagens.
Implementação de um bot de WhatsApp usando Python para lidar com as mensagens.
Nota: Esse repositório é um template para desenvolvimento de bots de WhatsApp usando Python para lidar com as mensagens.
/send, que recebe um chatId e uma mensagem para enviá-la ao WhatsApp (código-fonte em src/whatsapp-api)./send do Express (código-fonte em src/handler-api). Essa API é construída usando Flask e tem dois endpoints:
/message: recebe uma mensagem do Express e retorna a resposta que deve ser enviada./send: recebe um chatId e uma mensagem e envia para o Express.Para implementar como as mensagens devem ser tratadas, basta implementar o método handle em src/handler-api/handler_api/handler.py. Você pode fazer uso de qualquer mecanismo externo para gerenciamento de estado da conversa, o importante é que esse método exista e retorne uma resposta.
Para enviar mensagens arbitrárias, você pode ver o código de exemplo em examples/send_message.py.
docker-compose (recomendado para desenvolvimento)deploy/docker-compose/ você encontrará as instruções para subir usando Docker Compose. Altere o arquivo docker-compose.yaml para atender suas
necessidades.helm repo add prefeitura-rio https://helm.dados.rio
helm repo update
values.yaml para realizar a configuração do seu deployment. A configuração mínima é:handler_api:
image:
name: "your-company/handler-api"
tag: "your-tag"
whatsapp_api:
image:
name: "your-company/whatsapp-api"
tag: "your-tag"
helm install whatsapp-bot -f values.yaml prefeitura-rio/whatsapp-bot
Primeiramente, você deve se autenticar. Para isso, nos logs do container do whatsapp-api, serão emitidos
QR codes para você escanear e entrar no WhatsApp.
Em seguida, caso você tenha habilitado a persistência dos dados de sessão (é feita por padrão), esse passo não será mais necessário quando sua aplicação reiniciar.
Por padrão, para as mensagens recebidas pelo bot, a função handle é chamada e a resposta emitida por ela
é enviada para o WhatsApp.
Além disso, para enviar mensagens arbitrárias, basta emitir requisições POST para o endpoint /send da handler-api.
O formato da requisição é:
{
"chat_id": "identificador-do-chat",
"message": "mensagem-que-sera-enviada"
}