introduzione
In questo tutorial impareremo come utilizzare Ultramsg Nodejs-WhatsApp-sdk per utilizzare WhatsAppAPI con Nodejs
Installazione di WhatsApp API Nodejs-sdk
npm i ultramsg-whatsapp-api
Esempio di utilizzo
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: devi sostituire instance_id e token con il tuo nell’account ultramsg.com se non hai un account creane uno da qui .
Invia messaggio
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 : il tuo numero per il test con formato internazionale es. +14155552671 o chatID per contatti o gruppi es. [email protected] o [email protected]
- corpo : testo del messaggio, stringa UTF-8 o UTF-16 con emoji.
- priorità: questo parametro è facoltativo,
Puoi usarlo per creare una coda professionale per i messaggi , i messaggi con un valore di priorità inferiore vengono inviati per primi.
esempio di utilizzo:
priorità = 0: per priorità alta come i messaggi OTP.
priorità = 5: utilizzato con messaggi generali.
priorità =10: offerte promozionali non urgenti e notifiche ai tuoi clienti.
Valore predefinito: 10
- referenceId : il tuo ID di riferimento personalizzato per questo messaggio.
Invia immagine
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)
- didascalia : didascalia dell’immagine, stringa UTF-8 o UTF-16 con emoji.
- image : immagine del collegamento HTTP o file con codifica base64
Estensioni supportate (jpg, jpeg, gif, png, svg, webp, bmp).
Dimensione massima del file: 16 MB.
Lunghezza massima Base64 : 2.000.000
- nocache : predefinito falso
false: utilizza un file precedentemente caricato invece di caricarlo con ogni richiesta
true: caricandolo ogni richiesta
Invia 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)
- nomefile: nome del file, ad esempio 1.jpg o Hello.pdf
- documento: file di collegamento HTTP o file con codifica base64
Supporta la maggior parte delle estensioni come ( zip , xlsx , csv , txt , pptx , docx …. etc ) .
Dimensione massima del file: 100 MB.
Lunghezza massima Base64: 2.000.000
Invia audio
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 del collegamento HTTP o audio con codifica base64
Estensioni supportate (mp3, aac, ogg).
Dimensione massima del file: 16 MB.
Lunghezza massima Base64: 2.000.000
Invia voce
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 : file ogg audio del collegamento HTTP con opus codec o file ogg base64 nel codec opus
Dimensione massima del file: 16 MB.
Lunghezza massima Base64: 2.000.000
Invia video
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 con collegamento HTTP o video con codifica base64
Estensioni supportate (mp4, 3gp, mov).
Dimensione massima del file: 16 MB.
Lunghezza massima Base64: 2.000.000
Invia il link
var to="put_your_mobile_number_here";
var link="https://ultramsg.com";
const response = await api.sendLinkMessage(to,link);
console.log(response)
collegamento: collegamento HTTP o HTTPS
Invia contatto
var to="put_your_mobile_number_here";
var contact="[email protected]";
const response = await api.sendContactMessage(to,contact);
console.log(response)
- contatto: esempio di matrice Contact ID o Contact ID:
Esempio
o
[email protected],[email protected],[email protected]
Lunghezza massima: 300 caratteri, quasi 15 contatti
Invia posizione
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)
- indirizzo : Testo sotto la posizione.
Supporta due linee. Per utilizzare due righe, utilizzare il simbolo \n.
Lunghezza massima: 300 caratteri.
- lat : latitudine
- lng : longitudine
Invia Vcard
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 : valore di testo vcard 3.0
Lunghezza massima: 4096 caratteri
Ricevi messaggi
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)
- pagina : numero di pagina di impaginazione
- limite : numero di messaggi per richiesta. valore massimo: 100.
- stato : stato dei messaggi [inviati, in coda, non inviati]
- inviato: riceve i messaggi inviati.
- coda: riceve i messaggi dalla coda.
- unsent: riceve i messaggi non inviati.
- non valido: riceve messaggi non validi.
- all: riceve tutti i messaggi.
- ordina :
- asc: ordina i messaggi per ID dal più piccolo al più grande.
- desc: ordina i messaggi per ID dal più grande al più piccolo.
- id : filtra i messaggi per ID messaggio.
- referenceId : filtra i messaggi in base al tuo ID di riferimento personalizzato.
- da : filtra i messaggi per numero di mittente WhatsApp es. [email protected] .
- a : filtrare i messaggi in base al numero del destinatario, ad esempio [email protected] o [email protected] .
- ack : filtra i messaggi in base allo stato di ack del messaggio [in attesa, server, dispositivo, letto, riprodotto].
Ottieni statistiche sui messaggi
const response = await api.getMessageStatistics();
console.log(response)
Ottieni lo stato dell’istanza
const response = await api.getInstanceStatus();
console.log(response)
Ottieni immagine QR di istanza
const response = await api.getInstanceQr();
console.log(response)
Ottieni codice QR di istanza
const response = await api.getInstanceQrCode();
console.log(response)
Ottieni informazioni sull’istanza
Ottieni informazioni sul telefono connesso: numero, nome, immagine, ecc.
const response = await api.getInstanceMe();
console.log(response)
Ottieni le impostazioni dell’istanza
const response = await api.getInstanceSettings();
console.log(response)
sendDelay : ritardo in secondi tra l’invio del messaggio, predefinito 1 secondo
webhook_url: URL HTTP o https per la ricezione delle notifiche.
webhook_message_ack : notifiche on/off ack (messaggio consegnato e messaggio visualizzato) nei webhook.
webhook_message_received: notifiche di attivazione/disattivazione nei webhook alla ricezione del messaggio.
webhook_message_create: attivazione/disattivazione delle notifiche nei webhook quando il messaggio viene creato.
webhook_message_download_media : attivato/disattivato per ricevere documenti/file multimediali ricevuti.
Disconnessione dell’istanza
Esci da WhatsApp Web per ottenere un nuovo codice QR.
const response = await api.sendInstanceLogout();
console.log(response)
Riavvio dell’istanza
Riavvia la tua istanza.
const response = await api.sendInstanceRestart();
console.log(response)
Aggiornamento delle impostazioni dell’istanza
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 : ritardo in secondi tra l’invio del messaggio.
- webhook_url : URL HTTP o https per la ricezione delle notifiche.
- webhook_message_received : notifiche true/false nei webhook quando il messaggio è ricevuto.
- webhook_message_create : notifiche true/false nei webhook quando il messaggio viene creato.
- webhook_message_ack : notifiche true/false ack (messaggio consegnato e messaggio visualizzato) nei webhook.
Ottieni l’elenco delle chat
const response = await api.getChats();
console.log(response)
ricevi l’ultimo messaggio dalla conversazione in chat
- chatId : chatID per contatto o gruppo, ad esempio [email protected] o [email protected]
- limite : numero di messaggi per richiesta.
valore massimo: 1000.
var chatId="[email protected]";
var limit=100;
const response = await api.getChatsMessages(chatId,limit);
console.log(response)
Ottieni l’elenco dei contatti
const response = await api.getContacts();
console.log(response)
Ottieni informazioni di contatto
chatId : chatID per il contatto es. [email protected]
var chatId="[email protected]";
const response = await api.getContact(chatId);
console.log(response)
Ottiene tutti i contatti bloccati
const response = await api.getBlockedContacts();
console.log(response)
bloccare il contatto da WhatsApp
chatId : chatID per il contatto es. [email protected]
var chatId="[email protected]";
const response = await api.blockContact(chatId);
console.log(response)
Sblocca il contatto da WhatsApp
chatId : chatID per il contatto es. [email protected]
var chatId="[email protected]";
const response = await api.unblockContact(chatId);
console.log(response)
Controlla se il numero è un utente WhatsApp
chatId : chatID per il contatto es. [email protected]
var chatId="[email protected]";
const response = await api.checkContact(chatId);
console.log(response)
Ricevi messaggi WhatsApp
puoi ricevere messaggi WhatsApp usando webhook, puoi vedere questo articolo .
Infine
Puoi visitare il progetto su github
WhatsApp API Nodejs-sdk versione attuale: 1.0.1 su NPM