Reciba mensajes de WhatsApp usando Webhook y Node.js

Introducción

En este tutorial, crearemos una página para manejar webhooks de mensajes de WhatsApp entrantes usando Node.js

dependencias

para fines de desarrollo local, se requiere un servicio de túneles. Este ejemplo usa ngrok. Puede descargar ngrok aquí: https://ngrok.com/download

Configura tu proyecto

instale express y body-parser:

npm install express body-parser

Un ejemplo simple de recibir mensajes de WhatsApp de 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}🚀 `))

Inicie el proyecto ngrok y Node.js

Inicie Ngrok para Windows:

ngrok http 3000

Inicie Ngrok para Mac:

./ngrok http 3000

Inicie el proyecto Nodejs:

node index.js

Establezca la URL de Webhook en su instancia en ultramsg

Creamos un nuevo punto final de webhook: http://your-ngrok.io.com/ultramsgwebhook para manejar la solicitud, ahora las URL de webhook deben colocarse en la instancia en Ultramsg y habilitar la opción Webhook en Recibido, como en la siguiente imagen:

Reciba mensajes de WhatsApp usando Webhook y Node.js - API de WhatsApp
Reciba mensajes de WhatsApp usando Webhook y Node.js 3

EJEMPLO DE RESPUESTA 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
  }
}

Felicidades. Has recibido tu primer mensaje de WhatsApp.

Tipos de webhooks para usar con la API de WhatsApp y Ultramsg

  • webhook_message_received : notificaciones en webhooks cuando se recibe un mensaje.
  • webhook_message_create : notificaciones en webhooks cuando se crea un mensaje.
  • webhook_message_ack : notificaciones de acuse de recibo (mensaje entregado y mensaje visto) en webhooks.

Puedes ver los pasos anteriores en este video: