Send image message(path) with whatsapp-web.js

To send an image using the WhatsApp Web API and Node.js, you need to first convert the image file into a base64-encoded string. You can do this using the Node.js built-in fs module and the readFileSync() function to read the file contents, and the encoding function to convert it to a base64:

const fs = require('fs');
const path = require('path');

const filePath = '/path/to/image.jpg';
const image = fs.readFileSync(filePath, { encoding: 'base64' });

Once you have the image encoded as a base64 string, you can use the sendImage method of the Client object in whatsapp-web.js to send it to a contact or group:

const {Client , MessageMedia} = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');
const express = require('express');
const fs = require('fs');
const path = require('path');

const app = express();
const client = new Client();

async function sendFileFromPath(chatId, filePath, message) {
  const fileData = fs.readFileSync(filePath, { encoding: 'base64' });
  const chat = await client.getChatById(chatId);

  chat.sendMessage(new MessageMedia('image/jpg', fileData, 'image.jpg'), { caption: message }).then(() => {
    console.log('Media sent successfully');
  }).catch((err) => {
    console.error('Error sending media:', err);
  });
}

client.on('qr', qr => {
    qrcode.generate(qr, {small: true});
});

client.on('ready', () => {
    const chatId = '62123456789@c.us';
    const message = 'This is an image file';
    const filePath = 'D:/foto.jpg';

    sendFileFromPath(chatId, filePath, message);
});

client.initialize();

app.listen(3000, () => {
  console.log('SERVICE IS RUNNING');
});

Komentar

Postingan populer dari blog ini

WhatsApp Web login QR code in an HTML page using whatsapp-web.js

Node.js Telegram Bot API send an image with text

Add these security headers to your website