Skip to content

jorge-lba/whatsapp-bot

Repository files navigation

Mentoring Alert

O objetivo deste projeto é possibilitar que tanto os mentores quanto os participantes possam enviar um alerta via whatsapp caso uma das partes não tenham comparecido para a call.

Para manter os números de contato privados foi utilizada a API de Whatsapp ZENVIA para fazer o envio dos alertas.

feito-no-VSCode made-with-typescript API-Zenvia Next.js Jest

Como Funciona

Envie o comando mentoria mais o id #1 - mentoria#1.

Após o envio o sistema vai verificar se você pertence a essa mentoria e enviar os alertas.

Comando Participante Mentor
Alt Text Alt Text Alt Text
Comando enviado por uma das partes. Alerta recebido pelo participante. Alerta recebido pelo mentor.

API Zenvia

Para utilizar a API utilizei os dados da documentação, sandbox e tutorial em video.

O envio de mensagem é efetuado através de uma requisição http do tipo POST. Exemplo:

const sendingMessage =(request: AxiosInstance) => 
  async (contact:BodySengingText) => 
    (await request({data: JSON.stringify(contact)})).data

Está função tem como entrada no primeiro parâmetro uma configuração axios:

const setAxiosConfig = (baseURL:string) => 
  (contentType:string) => 
  (token:string) => 
  (method:Method) => axios.create({
    baseURL, 
    headers: {
      'content-type': contentType,
      'X-API-TOKEN': token
    },
    method: method
  })

O segundo parâmetro é composto de um objeto com as informações necessárias para o envio da mensagem:

type BodySengingText = {
  from: string,
  to: string,
  contents: [
    {
      type: string,
      text: string
    }
  ]
}

O retorno da função contem o body de resposta da requisição.

Conclusão

Iniciei esse projeto para testar a o Next.js e a API Zenvia de whatsapp. O Next.js foi bem simples de usar e de fazer o deploy. A API Zenvia também foi muito fácil de utilizar, como ela funciona com base em requisições as chamadas tanto de envio quanto de recebimento são simples de usar, neste projeto não utilizei o recebimento dos status das mensagens, mas a implementação segue o mesmo principio da de recebimento das mensagens.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors