Receba mensagens do WhatsApp usando Webhook e Node.js

Introdução

Neste tutorial, criaremos uma página para lidar com webhooks de mensagens do WhatsApp recebidas usando Node.js

Dependências

para fins de desenvolvimento local, é necessário um serviço de tunelamento. Este exemplo usa o ngrok, você pode baixar o ngrok aqui: https://ngrok.com/download

Configure seu projeto

instale express e body-parser:

npm install express body-parser

Um exemplo simples de recebimento de mensagens do WhatsApp do Ultramsg

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const PORT = 3000
// Setup a webhook route
app.use(bodyParser.json())
app.post('/ultramsgwebhook', (req, res) => {
  console.log(req.body) // print all response

  //messageFrom=req.body['data']['from'] // sender number
  //messageMsg=req.body['data']['body'] // Message text
  res.status(200).end()
})

app.use(bodyParser.json())
app.listen(PORT, () => console.log(`🚀 Server running on port ${PORT}🚀 `))

Iniciar projeto ngrok e Node.js

Inicie o Ngrok para Windows:

ngrok http 3000

Inicie o Ngrok para Mac:

./ngrok http 3000

Inicie o projeto Nodejs:

node index.js

Defina o URL do Webhook para sua instância no ultramsg

Criamos um novo endpoint do webhook: http://your-ngrok.io.com/ultramsgwebhook para tratar da requisição, agora as urls do webhook devem ser colocadas na instância no Ultramsg e habilitar a opção Webhook on Received, conforme imagem a seguir:

Receba mensagens do WhatsApp usando Webhook e Node.js - API do WhatsApp
Receba mensagens do WhatsApp usando Webhook e Node.js 3

EXEMPLO DE RESPOSTA JSON

{
  event_type: 'message_received',
  instanceId: '1150',
  data: {
    id: '[email protected]_3EB0FF54790702367270',
    from: '[email protected]',
    to: '[email protected]',
    ack: '',
    type: 'chat',
    body: 'Hello, World!',
    fromMe: false,
    time: 1644957719
  }
}

Parabéns. Você recebeu sua primeira mensagem do WhatsApp.

Tipos de webhooks para usar com a API do WhatsApp e Ultramsg

  • webhook_message_received : notificações em webhooks quando a mensagem é recebida.
  • webhook_message_create : notificações em webhooks quando a mensagem é criada.
  • webhook_message_ack : notificações ack (mensagem entregue e mensagem visualizada) em webhooks.

Você pode ver as etapas anteriores neste vídeo: