wa-socket-multi-session
v4.0.1
Published
Multi Session Whatsapp Library
Downloads
210
Readme
Whatsapp Socket Multi Session - Connecting More Whatsapp Session in 1 App
Connecting Your app with Whatsapp Messaging
Lightweight library for WhatsApp. Not require Selenium or any other browser.
Stand above Baileys Library.
Cloned from wa-multi-session@mimamch.
Installation
Install package using npm
npm install wa-socket-multi-session@latest
Then import your code
Using JS Module
import * as whatsapp from "wa-socket-multi-session";
or using CommonJS
const whatsapp = require("wa-socket-multi-session");
Session Usage/Examples
Start New Session
// create session with ID : mysessionid
// with QR
const session = await whatsapp.startWhatsapp("mysessionid");
// or
const session = await whatsapp.startSessionWithQR("mysessionid");
// Then, scan QR on terminal
// with pair code (experimental)
const session = await whatsapp.startWhatsapp("mysessionid", {
pairCode: true,
phoneNumber: "628xxxxxxx",
});
//or
const session = await whatsapp.startSessionWithPairingCode("mysessionid", {
phoneNumber: "628xxxxxxx",
});
// Then, pair your code
Get All Session ID
const sessions = whatsapp.getAllSession();
// returning all session ID that has been created
Get Session Data By ID
const session = whatsapp.getSession("mysessionid");
// returning session data
Load Session From Storage / Load Saved Session
whatsapp.loadSessionsFromStorage();
// Start saved session without scan again
Messaging Usage/Examples
Send Text Message
await whatsapp.sendTextMessage({
sessionId: "mysessionid", // session ID
to: "6281234567890", // always add country code (ex: 62)
text: "Hi There, This is Message from Server!", // message you want to send
});
Send Image
const image = fs.readFileSync("./myimage.png"); // return Buffer
const send = await whatsapp.sendImage({
sessionId: "session1",
to: "6281234567890",
text: "My Image Caption",
media: image, // can from URL too
});
Send Video
const video = fs.readFileSync("./myvideo.mp4"); // return Buffer
const send = await whatsapp.sendVideo({
sessionId: "session1",
to: "6281234567890",
text: "My Video Caption",
media: video, // can from URL too
});
Send Document File
const filename = "mydocument.docx";
const document = fs.readFileSync(filename); // return Buffer
const send = await whatsapp.sendDocument({
sessionId: "session1",
to: "6281234567890",
filename: filename,
media: document,
text: "Hei, Check this Document",
});
Send Voice Note
const filename = "myaudio.mp3";
const audio = fs.readFileSync(filename); // return Buffer
const send = await whatsapp.sendVoiceNote({
sessionId: "session1",
to: "6281234567890",
media: audio,
});
Read a Message
await whatsapp.readMessage({
sessionId: "session1",
key: msg.key,
});
Send Typing Effect
await whatsapp.sendTyping({
sessionId: "session1",
to: "6281234567890",
duration: 3000,
});
Listener Usage/Examples
Add Listener/Callback When Receive a Message
whatsapp.onMessageReceived((msg) => {
console.log(`New Message Received On Session: ${msg.sessionId} >>>`, msg);
});
Add Listener/Callback When QR Printed
whatsapp.onQRUpdated(({ sessionId, qr }) => {
console.log(qr);
});
Add Listener/Callback When Session Connected
whatsapp.onConnected((sessionId) => {
console.log("session connected :" + sessionId);
});
Handling Incoming Message Examples
whatsapp.onMessageReceived(async (msg) => {
if (msg.key.fromMe || msg.key.remoteJid.includes("status")) return;
await whatsapp.readMessage({
sessionId: msg.sessionId,
key: msg.key,
});
await whatsapp.sendTyping({
sessionId: msg.sessionId,
to: msg.key.remoteJid,
duration: 3000,
});
await whatsapp.sendTextMessage({
sessionId: msg.sessionId,
to: msg.key.remoteJid,
text: "Hello!",
answering: msg, // for quoting message
});
});
Save Media Message (Image, Video, Document)
whatsapp.onMessageReceived(async (msg) => {
if (msg.message?.imageMessage) {
// save image
msg.saveImage("./myimage.jpg");
}
if (msg.message?.videoMessage) {
// save video
msg.saveVideo("./myvideo.mp4");
}
if (msg.message?.documentMessage) {
// save document
msg.saveDocument("./mydocument"); // without extension
}
});
Optional Configuration Usage/Examples
Set custom credentials directory
// default dir is "wa_credentials"
whatsapp.setCredentialsDir("my_custom_dir");
// or : credentials/mycreds