API de WhatsApp Nodejs-SDK

Introducción

En este tutorial, aprenderemos a usar Ultramsg Nodejs-WhatsApp-sdk para usar WhatsAppAPI con Nodejs

Instalación de WhatsApp API Nodejs-sdk

npm i ultramsg-whatsapp-api

Ejemplo de uso

const ultramsg = require('ultramsg-whatsapp-api');
const instance_id= "instance1150" // Ultramsg.com instance id
const ultramsg_token= "tof7lsdJasdloaa57e"  // Ultramsg.com token
const api = new ultramsg(instance_id,ultramsg_token);
(async function () {
    var to = "put_your_mobile_number_here"
    var body = "Hello world" 
    const response = await api.sendChatMessage(to,body);
   console.log(response)
})(); 

NOTA: debe reemplazar el ID de instancia y el token con el suyo en la cuenta de ultramsg.com si no tiene una cuenta, cree una desde aquí .

Enviar mensaje

var to="put_your_mobile_number_here"; 
var body="Hello world";
var priority=10;
var referenceId="SDK";
const response = await api.sendChatMessage(to,body,priority,referenceId);
console.log(response)
  • a : su número para realizar pruebas con formato internacional, por ejemplo, +14155552671 o chatID para contacto o grupo, por ejemplo, [email protected] o [email protected]
  • cuerpo : texto del mensaje, cadena UTF-8 o UTF-16 con emoji.
  • prioridad: este parámetro es opcional,

Puede usarlo para crear una cola profesional para mensajes . Los mensajes con menos valor de prioridad se envían primero.

ejemplo de uso:

prioridad = 0: para alta prioridad como mensajes OTP.

prioridad = 5: se usa con mensajes generales.

prioridad =10: ofertas promocionales no urgentes y notificaciones a tus clientes.

Valor predeterminado: 10

Enviar imagen

var to="put_your_mobile_number_here"; 
var caption="image Caption"; 
var image="https://file-example.s3-accelerate.amazonaws.com/images/test.jpg"; 
var priority=10;
var referenceId="SDK"
var nocache=false; 
const response = await api.sendImageMessage(to,caption,image,priority,referenceId,nocache);
console.log(response)
  • subtítulo : título de imagen, cadena UTF-8 o UTF-16 con emoji.
  • imagen : imagen de enlace HTTP o archivo codificado en base64

Extensiones compatibles (jpg, jpeg, gif, png, svg, webp, bmp).

Tamaño máximo de archivo: 16 MB.

Longitud máxima de Base64 : 2,000,000

  • nocache : por defecto falso

falso: use un archivo cargado previamente en lugar de cargarlo con cada solicitud

verdadero: subirlo cada solicitud

Enviar documento

var to="put_your_mobile_number_here"; 
var filename="cv.pdf"; 
var document="https://file-example.s3-accelerate.amazonaws.com/documents/cv.pdf"; 
const response = await api.sendDocumentMessage(to,filename,document);
console.log(response)
  • filename: nombre del archivo, por ejemplo, 1.jpg o Hello.pdf
  • documento: archivo de enlace HTTP o archivo codificado en base64

Compatible con la mayoría de las extensiones como (zip, xlsx, csv, txt, pptx, docx, etc.).

Tamaño máximo de archivo: 100 MB.

Longitud máxima de Base64: 2,000,000

Enviar sonido

var to="put_your_mobile_number_here"; 
var audio="https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3"; 
const response = await api.sendAudioMessage(to,audio);
console.log(response)
  • audio : audio de enlace HTTP o audio codificado en base64

Extensiones compatibles (mp3, aac, ogg).

Tamaño máximo de archivo: 16 MB.

Longitud máxima de Base64: 2,000,000

Enviar voz

var to="put_your_mobile_number_here"; 
var audio="https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg"; 
const response = await api.sendVoiceMessage(to,audio);
console.log(response)
  • audio : archivo ogg de audio de enlace HTTP con códec opus o archivo ogg base64 en códec opus

Tamaño máximo de archivo: 16 MB.

Longitud máxima de Base64: 2,000,000

Enviar vídeo

var to="put_your_mobile_number_here"; 
var caption="video Caption"; 
var video="https://file-example.s3-accelerate.amazonaws.com/video/test.mp4"; 
const response = await api.sendVideoMessage(to,caption,video);
console.log(response)
  • video : video de enlace HTTP o video codificado en base64

Extensiones compatibles (mp4, 3gp, mov).

Tamaño máximo de archivo: 16 MB.

Longitud máxima de Base64: 2,000,000

Enviar enlace

var to="put_your_mobile_number_here"; 
var link="https://ultramsg.com"; 
const response = await api.sendLinkMessage(to,link);
console.log(response)

enlace: enlace HTTP o HTTPS

Enviar contacto

var to="put_your_mobile_number_here"; 
var contact="[email protected]"; 
const response = await api.sendContactMessage(to,contact);
console.log(response)
  • contacto: ID de contacto o ejemplo de matriz de ID de contacto:

Ejemplo

[email protected]

o

[email protected],[email protected],[email protected]

Longitud máxima: 300 caracteres, casi 15 contactos

Enviar ubicación

var to="put_your_mobile_number_here"; 
var address="ABC company \n Sixth floor , office 38"; 
var lat="25.197197"; 
var lng="55.2721877"; 
const response = await api.sendLocationMessage(to,address,lat,lng);
console.log(response)
  • dirección : texto debajo de la ubicación.

Admite dos líneas. Para usar dos líneas, use el símbolo \n.

Longitud máxima: 300 caracteres.

  • lat : Latitud
  • lng : longitud

Enviar tarjeta virtual

var to="put_your_mobile_number_here"; 
var vcard=`BEGIN:VCARD
VERSION:3.0
N:lastname;firstname
FN:firstname lastname
TEL;TYPE=CELL;waid=14000000001:14000000002
NICKNAME:nickname
BDAY:01.01.1987
X-GENDER:M
NOTE:note
ADR;TYPE=home
ADR;TYPE=work
END:VCARD`; 
const response = await api.sendVcardMessage(to,vcard);
console.log(response)
  • vcard : valor de texto vcard 3.0

Longitud máxima: 4096 caracteres

Obtener mensajes

var page=1;
var limit=100;
var status="all";
var sort="asc";
var id="";
var referenceId="";
var from="";
var to="";
var ack="";
const response = await api.getMessages(page,limit,status,sort,id,referenceId,from,to,ack);
console.log(response)
  • página : número de página de paginación
  • límite : número de mensajes por solicitud. valor máximo : 100 .
  • estado : estado de los mensajes [enviado, cola, no enviado]
    • enviado: recibir mensajes enviados.
    • cola: obtener mensajes de la cola.
    • no enviado: obtener mensajes no enviados.
    • inválido: recibe mensajes inválidos.
    • all: recibe todos los mensajes.
  • ordenar :
    • asc: mensajes ordenados por ID de menor a mayor.
    • desc: mensajes ordenados por ID de mayor a menor.
  • id : filtrar mensajes por ID de mensaje.
  • referenceId : filtre los mensajes por su ID de referencia personalizado.
  • de : filtrar mensajes por número de remitente de WhatsApp, por ejemplo, [email protected].
  • para : filtrar mensajes por número de destinatario, por ejemplo, [email protected] o [email protected].
  • acuse de recibo: filtre los mensajes por el estado del acuse de recibo del mensaje [pendiente, servidor, dispositivo, leído, reproducido].

Obtener estadísticas de mensajes

const response = await api.getMessageStatistics();
console.log(response)

Obtener estado de instancia

const response = await api.getInstanceStatus();
console.log(response)

Obtener imagen QR de instancia

const response = await api.getInstanceQr();
console.log(response)

Obtenga el código QR de la instancia

const response = await api.getInstanceQrCode();
console.log(response)

Obtener información de la instancia

Obtenga información del teléfono conectado: número, nombre, imagen, etc.

const response = await api.getInstanceMe();
console.log(response)

Obtener configuración de instancia

const response = await api.getInstanceSettings();
console.log(response)

sendDelay: Retraso en segundos entre el envío del mensaje, por defecto 1 segundo

webhook_url: URL Http o https para recibir notificaciones.

webhook_message_ack: on/off ack (mensaje entregado y mensaje visto) notificaciones en webhooks.

webhook_message_received: notificaciones de encendido/apagado en webhooks cuando se recibe un mensaje.

webhook_message_create: activar/desactivar notificaciones en webhooks cuando se crea un mensaje.

webhook_message_download_media: activar/desactivar para recibir documentos/archivos multimedia.

Cierre de sesión de instancia

Cierre la sesión de WhatsApp Web para obtener un nuevo código QR.

const response = await api.sendInstanceLogout();
console.log(response)

Reinicio de instancia

Reinicie su instancia.

const response = await api.sendInstanceRestart();
console.log(response)

Actualización de la configuración de la instancia

var sendDelay=1;
var webhook_url="";
var webhook_message_received=false;
var webhook_message_create=false;
var webhook_message_ack=false;
var webhook_message_download_media=false;

const response = await api.sendInstanceSettings(sendDelay,webhook_url,webhook_message_received,webhook_message_create,webhook_message_ack,webhook_message_download_media);
console.log(response)
  • sendDelay : Retraso en segundos entre el envío del mensaje.
  • webhook_url : URL Http o https para recibir notificaciones.
  • webhook_message_received : notificaciones verdaderas/falsas en webhooks cuando se recibe un mensaje.
  • webhook_message_create : notificaciones verdaderas/falsas en webhooks cuando se crea un mensaje.
  • webhook_message_ack : notificaciones de reconocimiento verdadero/falso (mensaje entregado y mensaje visto) en webhooks.

Obtener la lista de chats

const response = await api.getChats();
console.log(response)

obtener el último mensaje de la conversación de chat

valor máximo: 1000.

var chatId="[email protected]";
var limit=100;
const response = await api.getChatsMessages(chatId,limit);
console.log(response)

Obtener la lista de contactos

const response = await api.getContacts();
console.log(response)

Obtener información de contacto

chatId : ID de chat para contacto, por ejemplo, [email protected]

var chatId="[email protected]"; 
const response = await api.getContact(chatId);
console.log(response)

Obtiene todos los contactos bloqueados

const response = await api.getBlockedContacts();
console.log(response)

bloquear contacto de whatsapp

chatId : ID de chat para contacto, por ejemplo, [email protected]

var chatId="[email protected]"; 
const response = await api.blockContact(chatId);
console.log(response)

Desbloquear contacto de WhatsApp

chatId : ID de chat para contacto, por ejemplo, [email protected]

var chatId="[email protected]"; 
const response = await api.unblockContact(chatId);
console.log(response)

Comprobar si el número es usuario de WhatsApp

chatId : ID de chat para contacto, por ejemplo, [email protected]

var chatId="[email protected]"; 
const response = await api.checkContact(chatId);
console.log(response)

Recibir mensajes de WhatsApp

Puedes recibir mensajes de WhatsApp usando webhooks, puedes ver este artículo .

Por fin

Puedes visitar el proyecto en github

WhatsApp API Nodejs-sdk versión actual: 1.0.1 en NPM