Ir para o conteúdo principal

[Mr. Day] API para envio de mensagens via WhatsApp

Data de elaboração 28/01/2022
Responsável pelo estudo
  1. Gabriel Santi Binda (Assessor)
  2. Raissa de Sousa Stolduski (Assessor)
  3. Taillon Miguel Gonçalves (Assessor)
Equipe do estudo Tambaqui
Alvo Sistema
Origem

o que originou o estudo? usar alguma destas classes:

  • Implementação: Implementar chat via whatsapp
Objetivo O objetivo deste estudo é analisar maneiras de enviar mensagens via WhatsApp, inicialmente para atualizações de status das solicitações dentro do Mr.Day. 
Documentação correlata (opcional) https://documentos.sistemas.ro.gov.br/books/mr-day
Observações
1. Introdução

O estudo surgiu, a partir de uma necessidade da Governadoria de informar alguns usuários via mensagem de WhatsApp sobre alterações em status de solicitações dentro do sistema Mr.Day, e para atender essa necessidade, foram encontradas algumas soluções pagas e gratuitas, para esse envio de mensagens via WhatsApp.

2. Desenvolvimento
Soluções Propostas

Para atingir o objetivo e atender a necessidade da Governadoria, encontramos algumas soluções baseadas em APIs REST para enviar mensagens à usuários do WhatsApp que estão relacionados diretamente às solicitações do Mr.Day.

2.1 Solução 1 - Plataforma de Comunicação Zenvia

Essa solução é composta pela utilização da plataforma de comunicação Zenvia, a qual possui uma API REST para envio de mensagens via WhatsApp com numero incluso e cobrança por mensagem enviada conforme figura 1.

image-1643376366255.png

Figura 1: Preço e funcionalidades da plataforma Zenvia

2.2 Solução 2 - API WhatsApp Business Twillio

Essa solução é composta pela utilização da API REST da Twillio que utiliza a API Business oficial do WhatsApp em back-end, que também é uma solução paga com custo por mensagem conforme figura 2.

image-1643376781946.png

Figura 2: Preço e funcionalidades da plataforma Twillio

2.3 Solução 3 - API REST OpenSource MyZap

Essa solução é gratuita com código OpenSource, é baseada no WhatsApp Web onde uma aplicação desenvolvida em Node.js, que tem como objetivo utilizar um telefone existente que inicia uma sessão virtual no WhatsApp Web para poder enviar mensagens para as pessoas, não tem restrição de mensagens e é 100% gratuita, conforme figura 3.

image-1643377678170.png

Figura 3: Introdução a API REST OpenSource MyZap

2.4 Riscos

Após a formulação das soluções, foram analisados os riscos que cada uma possui dentro do contexto onde estão incluídas.

Solução 1: Entendemos como risco nessa solução, o valor à ser pago por mês e também a dependência de um suporte de terceiros.

Solução 2: Entendemos como risco nessa solução, o valor à ser pago por mensagem, a dependência de um  suporte de terceiros, a documentação complexa e suporte pago à parte.

Solução 3: Entendemos como risco nessa solução, projeto com muitas dependências, a curva de aprendizado para implementação da API e a necessidade de um celular com o numero estar sempre conectado à internet.

Vantagens

Após a formulação das soluções, além dos riscos, foram também analisadas as vantagens de cada solução.

Solução 1: Console de gerenciamento intuitivo, suporte por e-mail, numero incluso e segurança.

Solução 2: Console de gerenciamento intuitivo, plano de suporte, fácil implementação.

Solução 3: Gratuito, OpenSource, possibilidade de hospedar a API no ambiente da SETIC, suporte próprio.

3. Conclusão

Através das soluções propostas acima, bem como, toda problemática explanada, identificamos como melhores opções a Solução 3 seguida da Solução 1, pois não foram identificados riscos relevantes dentro do contexto onde as soluções estão inseridas que tornem inviáveis as implementações.

4. Glossário

API - É um conjunto de definições e protocolos usado no desenvolvimento e na integração de software de aplicações.

REST - É um estilo de arquitetura de software que define um conjunto de restrições a serem usadas para a criação de web services.

Back-End - É o que está por trás das aplicações desenvolvidas na programação, tudo que dá estrutura e apoio às ações.

OpenSource - Software de código aberto é o software de computador com o seu código fonte disponibilizado e licenciado com uma licença de código aberto no qual o direito autoral fornece o direito de estudar, modificar e distribuir o software de graça para qualquer um e para qualquer finalidade.

Node.js - É um software de código aberto, multiplataforma, baseado no interpretador V8 do Google e que permite a execução de códigos JavaScript fora de um navegador web.