带有Node.js的Twilio MMS - 发送多个媒体文件

时间:2016-02-16 15:50:02

标签: javascript node.js twilio mms

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://farm2.static.flickr.com/1075/1404618563_3ed9a44a3a.jpg"  
 }, function(err, message) { 
    console.log(message.sid); 
 });

我原本期望mediaUrl属性是一个字符串数组而不是单个值。你如何表明多个媒体附件?

1 个答案:

答案 0 :(得分:4)

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://farm2.static.flickr.com/1075/1404618563_3ed9a44a3a.jpg", "http://another-image.com/image.jpg"]
 }, function(err, message) { 
    console.log(message.sid); 
 });

如果您只有一张图片,那么效果与使用字符串一样。

在幕后,Node.js帮助程序库使用querystring模块将参数转换为表单编码的POST正文。因此,当您使用mediaUrls数组时,就像在我的示例中一样,它将变为:

  

'至=%2B16518675309&安培;从=%2B14158141829&安培;主体=嘿%20Jenny%20Good%20luck%20on%第二十条%20巴%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执行此操作,请参阅下面的示例或in the documentation

const MessagingResponse = require('twilio').twiml.MessagingResponse;

const response = new MessagingResponse();
const message = response.message();
message.body('Hello Jenny');
message.media('https://demo.twilio.com/owl.png');
message.media('https://demo.twilio.com/bunny.png');

console.log(response.toString());

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