Enviar un mensaje de WhatsApp con Node.js
Objetivo
Sección titulada «Objetivo»Al final, tendrá un script Node.js que envía un mensaje de texto mediante la Nigora Zap API y muestra la respuesta. Sin paquetes adicionales: fetch ya viene incluido en Node.
Requisitos previos
Sección titulada «Requisitos previos»- Una instancia conectada. Si aún no la conectó, vea Conexión.
- El ID y el token de la instancia, como en Primeros pasos.
- Node.js 18 o más nuevo. Compruébelo con
node --version.
1. Guarde las credenciales en el entorno
Sección titulada «1. Guarde las credenciales en el entorno»No escriba el token en el código. Léalo de variables de entorno:
export NIGORA_INSTANCIA_ID="cole-aqui-o-id-da-instancia"export NIGORA_TOKEN="cole-aqui-o-token"2. Cree el script
Sección titulada «2. Cree el script»Guárdelo como enviar.mjs. La extensión .mjs permite usar await directamente en el archivo:
const { NIGORA_INSTANCIA_ID: instanciaId, NIGORA_TOKEN: token } = process.envif (!instanciaId || !token) { console.error('Defina NIGORA_INSTANCIA_ID e NIGORA_TOKEN.') process.exit(1)}
const resposta = await fetch(`https://api.zap.nigora.com.br/v1/instances/${instanciaId}/messages/text`, { method: 'POST', headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ to: '5511999999999', text: 'Olá! Esta mensagem saiu pela API.', }), signal: AbortSignal.timeout(15000),})
console.log('Status HTTP:', resposta.status)console.log(await resposta.text())process.exit(resposta.ok ? 0 : 1)Cambie 5511999999999 por el teléfono de quien va a recibir el mensaje, con código de país y de área. La API ignora todo lo que no sea un dígito y agrega el 55 cuando el número tiene 10 u 11 dígitos.
3. Ejecute
Sección titulada «3. Ejecute»node enviar.mjsResultado esperado:
Status HTTP: 202{"id":"…","status":"queued"}El 202 significa que el mensaje entró en la cola. Todavía no fue entregado. Guarde el id: con él usted relaciona la respuesta con los eventos message.sent y message.status, que llegan por webhook.
Si algo sale mal
Sección titulada «Si algo sale mal»| Status | Código | Qué hacer |
|---|---|---|
400 |
invalid_phone |
Corrija el teléfono: debe tener 12 o 13 dígitos con el 55 |
401 |
invalid_token |
Revise el token y el ID de la instancia |
402 |
instance_suspended |
La instancia está suspendida o con un pago pendiente |
422 |
contact_opted_out |
El contacto pidió no recibir mensajes |
Si falla la red o se agota el tiempo, fetch lanza una excepción y Node la muestra en la terminal.
Próximos pasos
Sección titulada «Próximos pasos»- Envío de mensajes: respuestas, cola y seguimiento del resultado.
- Recibir mensajes por webhook: vea las respuestas llegar a su sistema.
- Envío de multimedia: imagen, video, audio y documento.
Enviar un mensaje de WhatsApp con PHP Siguiente página
Enviar un mensaje de WhatsApp con Python