我正在使用MS Bot Framework在Node.js中编写机器人。为了发送附件,我实际上使用文件流缓冲区作为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框架模拟器),这对图像和音频文件都很有效 - 带有图像附件的消息显示图像,带有音频附件的消息显示允许播放的音频卡等。
然而,当我通过FB Messenger测试时,图像工作正常,但音频消息从未出现在FB中。甚至消息的文本都没有通过;它就像整个消息丢失了一样。对话框简单地跳过包含音频附件的消息。我甚至没有看到服务器端收到任何错误。
这种情况发生在mp3和wav测试音频文件中,每个都低于1MB(比我成功测试的许多图像文件小)。
是否有一些技巧可以将可播放的音频文件专门发送到FB Messenger频道?
谢谢!
答案 0 :(得分:0)
我还没有能够从FB支持获得响应,但经过进一步测试后,看起来 对FB Messenger接受的音频文件的文件大小限制。< / p>
具体来说,我能够获得~45KB的样本文件成功发送并显示在Messenger中,但是大约400KB的文件被丢弃(也似乎从服务器端的角度成功发送,但没有显示在Messenger中。)
奇怪的是,我的一些较大的图像文件已经通过,因此图像附件似乎不存在相同的限制。
将进行一些进一步的测试,但似乎最终的解决方案是主要压缩我的音频文件,或者将它们托管在其他地方而不是作为文件流发送。