Как я могу сохранить полученное изображение или файл документа от отправителя WhatsApp с помощью Twilio? - PullRequest
0 голосов
/ 28 мая 2019

У меня есть сценарий, например, пользователь отправит изображение или pdf-файл на номер twilio whatsapp, поэтому мне нужно сохранить это изображение / pdf в папке, которая будет обработана до следующего уровня.

Как я могу сохранитьфайлы?Я использую Node SDK.

Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2019

Предполагая, что вы уже настроили 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)
  })
}

...