You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Twilio资源正确转发MMS消息?解决权限及多图问题

正确使用Twilio转发MMS的方法

核心问题拆解

  • 你当前代码里直接拼接的MediaUrl0是Twilio私有临时链接,必须登录才能访问,导致接收方无法直接查看图片
  • 未处理多图场景,仅调用了单个MediaUrl0字段,无法覆盖包含多个媒体文件的MMS

解决方案代码

改用Twilio Client调用Messaging API实现转发,直接传递原消息的媒体资源,同时支持多号码、多图场景:

exports.handler = async function(context, event, callback) {
  // 配置需要转发的目标美国号码列表
  const targetNumbers = ['+19999999999', '+18888888888'];
  const twilioClient = context.getTwilioClient();
  
  try {
    // 遍历所有目标号码逐一转发
    for (const number of targetNumbers) {
      // 收集所有媒体URL(处理多图消息)
      const mediaUrls = [];
      let mediaIndex = 0;
      while (event[`MediaUrl${mediaIndex}`]) {
        mediaUrls.push(event[`MediaUrl${mediaIndex}`]);
        mediaIndex++;
      }
      
      // 调用Twilio API发送带媒体的消息
      await twilioClient.messages.create({
        from: event.To, // 使用原接收消息的Twilio号码作为发送方
        to: number,
        body: `${event.From}: ${event.Body || ''}`,
        mediaUrl: mediaUrls // 直接传入所有媒体链接,Twilio会自动转为公开可访问地址
      });
    }
    callback(null, 'MMS转发完成');
  } catch (error) {
    callback(error);
  }
};

关键说明

  • 媒体资源公开化:通过Twilio API的mediaUrl参数传递原消息的媒体链接,Twilio会重新托管这些资源,生成无需登录即可访问的公开链接
  • 多图兼容:通过循环遍历MediaUrl0、MediaUrl1等字段,自动收集所有媒体资源,适配多图MMS场景
  • 多号码转发:将目标号码存入数组,通过循环实现批量转发
  • 权限要求:确保Twilio Function的环境变量已正确配置ACCOUNT_SID和AUTH_TOKEN,且Function服务权限允许调用Messaging API

内容的提问来源于stack exchange,提问作者MSieg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:42:10