Я пишу бота в Node.js, используя MS Bot Framework. Для отправки вложений я на самом деле использую буфер потока файлов в качестве contentUrl, например,
...
var base64 = new Buffer(filedata).toString('base64');
var msg = new builder.Message()
.setText(session, text)
.addAttachment({
contentUrl: util.format('data:%s;base64,%s', contentType, base64),
contentType: contentType
});
session.send(msg);
...
, где contentType
- правильный mimetype для рассматриваемого файла.
Когда я проверяю это локально (с помощью эмулятора Bot Framework), это прекрасно работает как с изображениями, так и со звуковыми файлами - сообщения с вложенными изображениями отображают изображение, а сообщения с вложенными звуковыми файлами показывают аудиокарту, допускающую воспроизведение и т. Д.
Однако, когда я проверяю это через FB Messenger, изображения работают нормально, но звуковые сообщения никогда не появляются в FB. Даже текст сообщения не приходит; как будто все сообщение потеряно. Диалог просто пропускает сообщение, содержащее аудио-вложение. Я даже не вижу никаких ошибок, полученных на стороне сервера.
Это происходит с тестовыми аудиофайлами mp3 и wav, каждый из которых имеет размер менее 1 МБ (меньше, чем у многих файлов изображений, которые я успешно протестировал).
Есть ли какая-то хитрость в отправке воспроизводимых аудиофайлов на канал FB Messenger?
Спасибо!