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

使用TypeScript通过axios.post调用WhatsApp Cloud API时遇400错误的技术求助

排查axios.post调用WhatsApp Cloud API返回400错误的问题

嘿,我帮你找到了导致axios.post调用返回400错误的关键问题,咱们一步步来解决:

核心问题:请求体结构错误

你在axios.post的第二个参数里把payload包在了额外的{payload}对象中,这会让API收到的请求体变成如下结构:

{
  "payload": {
    "messaging_product": "whatsapp",
    // ... 其他字段
  }
}

而WhatsApp Cloud API要求messaging_product、recipient_type等核心字段必须直接放在请求体的根层级——这和你用axios(config)时的data结构完全一致。这种结构不匹配就是触发400错误的主要原因。

另外,你的params是空对象,完全可以从调用中移除,简化代码(WhatsApp API支持请求头Authorization: Bearer {{token}}的认证方式,你的写法是没问题的)。

修正后的代码

let url = "https://graph.facebook.com/{{Version}}/{{Phone-Number-ID}}/messages"
let payload = { 
  messaging_product: "whatsapp", 
  recipient_type: "individual", 
  to: {{Recipient-Phone-Number}}, 
  text: {body: "Welcome back my friend"}, 
}
let headers = {"Content-Type": "application/json", "Authorization":"Bearer {{token}}" }
try { 
  // 直接传递payload作为请求体,无需额外包裹
  const resp = await axios.post(url, payload, {headers}); 
  log("POST RESP", resp) 
} catch(error) { 
  // 建议打印错误响应详情,WhatsAPI会返回具体的错误原因
  console.error("Error details:", error.response?.data);
  throw error; 
}

额外排查建议

如果后续还是遇到错误,一定要在catch块中打印error.response?.data,WhatsApp Cloud API会返回非常具体的错误描述(比如哪个字段缺失、格式不正确),能帮你快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:12:40