mirror of
https://github.com/cheveguerra/whatsapp-api-tutorial.git
synced 2026-04-17 19:36:59 +00:00
Add sending media files
This commit is contained in:
37
app.js
37
app.js
@@ -1,4 +1,4 @@
|
||||
const { Client } = require('whatsapp-web.js');
|
||||
const { Client, MessageMedia } = require('whatsapp-web.js');
|
||||
const express = require('express');
|
||||
const { body, validationResult } = require('express-validator');
|
||||
const socketIO = require('socket.io');
|
||||
@@ -6,6 +6,8 @@ const qrcode = require('qrcode');
|
||||
const http = require('http');
|
||||
const fs = require('fs');
|
||||
const { phoneNumberFormatter } = require('./helpers/formatter');
|
||||
const fileUpload = require('express-fileupload');
|
||||
const axios = require('axios');
|
||||
|
||||
const app = express();
|
||||
const server = http.createServer(app);
|
||||
@@ -13,6 +15,9 @@ const io = socketIO(server);
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
app.use(fileUpload({
|
||||
debug: true
|
||||
}));
|
||||
|
||||
const SESSION_FILE_PATH = './whatsapp-session.json';
|
||||
let sessionCfg;
|
||||
@@ -138,6 +143,36 @@ app.post('/send-message', [
|
||||
});
|
||||
});
|
||||
|
||||
// Send media
|
||||
app.post('/send-media', async (req, res) => {
|
||||
const number = phoneNumberFormatter(req.body.number);
|
||||
const caption = req.body.caption;
|
||||
const fileUrl = req.body.file;
|
||||
|
||||
// const media = MessageMedia.fromFilePath('./image-example.png');
|
||||
// const file = req.files.file;
|
||||
// const media = new MessageMedia(file.mimetype, file.data.toString('base64'), file.name);
|
||||
let mimetype;
|
||||
const attachment = await axios.get(fileUrl, { responseType: 'arraybuffer' }).then(response => {
|
||||
mimetype = response.headers['content-type'];
|
||||
return response.data.toString('base64');
|
||||
});
|
||||
|
||||
const media = new MessageMedia(mimetype, attachment, 'Media');
|
||||
|
||||
client.sendMessage(number, media, { caption: caption }).then(response => {
|
||||
res.status(200).json({
|
||||
status: true,
|
||||
response: response
|
||||
});
|
||||
}).catch(err => {
|
||||
res.status(500).json({
|
||||
status: false,
|
||||
response: err
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
server.listen(8000, function() {
|
||||
console.log('App running on *: ' + 8000);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user