Предполагая, что вы уже настроили webhook на своей странице песочницы , чтобы сообщения, содержащие мультимедиа из Whatsapp, попадали в ваше приложение.
Как указано в документации , вы получите MediaContentType{N}
и MediaUrl{N}
, равные body
и другим параметрам. Следующий фрагмент был переведен из примера Python из официальной документации :
const Fs = require('fs')
const Path = require('path')
const Axios = require('axios')
const num_media = req.body.NumMedia;
const media_files = []
for (let i = 0; i <= num_media; i++) {
const id = req.body.MessageSid
const media_url = req.body[`MediaUrl{i}`];
const mime_type = req.body[`MediaContentType{i}`);
media_files.push({'media_url': media_url, 'mime_type': mime_type});
download(media_url, id);
}
async function download(url, name) {
const path = Path.resolve(__dirname, 'files', name)
const writer = Fs.createWriteStream(path)
const response = await Axios({
url,
method: 'GET',
responseType: 'stream'
})
response.data.pipe(writer)
return new Promise((resolve, reject) => {
writer.on('finish', resolve)
writer.on('error', reject)
})
}