Хотя интеграция WhatsApp API в Twilio все еще находится в стадии бета-тестирования, и они работают с командой WhatsApp для лучшей интеграции, я успешно отправил аудиосообщение в формате MP3 через среду песочницы.
Логика:
Из приложения WhatsApp я отправляю сообщение на номер песочницы Twilio.
- Twilio получает сообщение и отправляет (POST) его через webhook на конечную точку приложения My Node.js, расположенную в Heroku.
- Приложение Heroku Node получает сообщение и выполняет некоторую логику.
- После выполнения логики мне нужно ответить текстовым сообщением, за которым следует звуковое сообщение, под фрагментом, который я использовал:
const client = require('twilio')(accountSid, authToken);
const MessagingResponse = require('twilio').twiml.MessagingResponse;
const twiml = new MessagingResponse();
//Text Message
var msg = twiml.message("Text Message");//Text Message
res.writeHead(200, {'Content-Type': 'text/xml'});
res.end(twiml.toString());
//Audio Message
client.messages
.create({
to: req.body.From,//req is the request arrived from the Twilio forward webhook
from: req.body.To,
body: "",
mediaUrl: "http://www.example.com/audio/test.mp3",
})
.then((message) => console.log(message.sid));
Когда звуковое сообщение поступает в приложение WhatsApp, вы можете прослушивать его напрямую, не просматривая ссылку, на которой размещен звук.
Имейте в виду, что WhatsApp может блокировать сообщения, но в этом случае выдолжен увидеть журналы ошибок на панели мониторинга Twilio.