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

axios调用Twilio API发媒体消息报Message body not provided错

问题排查结果

返回Message body not provided错误是三个代码问题共同导致的:

  • axios配置项使用错误:axios发送请求时,请求体对应的配置字段是data而非body,当前代码写的body: new URLSearchParams(...)不会被axios识别,实际发送给Twilio的是完全空的请求体,服务端读不到任何提交参数。
  • 请求头Content-Type值错误:表单urlencoded格式的正确MIME类型是application/x-www-form-urlencoded,代码中配置的x-www-form-urlencoded是无效值,即使参数传对了服务端也无法正常解析表单内容。
  • 接口参数规则不符合Twilio要求:调用Conversations消息发送接口时,Body字段为强制必填项,即使发送纯媒体消息、不需要附带文本内容,也需要显式传入Body: ''(空字符串),仅传MediaSid会被接口判定为参数缺失。
修复方案

调整后可正常运行的axios请求代码如下:

await axios({
  url: `https://conversations.twilio.com/v1/Services/${convoServiceSid}/Conversations/${stringSenderId}/Messages`,
  method: "POST",
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  auth: { 
    username: subActServiceSid, 
    password: subActAuthToken 
  },
  // 用data字段传请求体,同时补充必填的空Body参数
  data: new URLSearchParams({
    MediaSid: 'ME58052d0b6e178ace30a0dbb617ffec2c',
    Body: ''
  })
}).then(res => {
  console.log("Twilio媒体消息发送返回结果", res.data)
})

补充说明:子账号场景下使用带/Services/{serviceSid}前缀的服务级别接口路径写法是正确的,不需要改回文档示例中的全局路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:09:20