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

调用Twilio WhatsApp API时遭遇20422错误,请求协助排查

解决Twilio WhatsApp API返回400错误(20422 Invalid Parameter)

你遇到的错误是Twilio返回的20422 Invalid Parameter,且Postman请求也触发相同错误,说明问题出在请求参数的组合逻辑上,而非代码语言实现。你的Go代码中同时设置了多个冲突参数,导致API无法识别有效输入。

问题根源

Twilio WhatsApp API的参数存在互斥规则:

  • 当使用ContentSid(发送模板消息)时,不能同时指定MessagingServiceSid和From参数,二者选其一即可
  • 如果配置了MessagingServiceSid,无需手动设置From,消息服务会自动分配已关联的认证号码

修正方案

方案1:使用消息服务发送模板消息(推荐)

移除From参数,保留MessagingServiceSid和ContentSid:

package main

import (
    "fmt"

    "github.com/twilio/twilio-go"
    api "github.com/twilio/twilio-go/rest/api/v2010"
)

func main() {
    clientParameter := twilio.ClientParams{}
    clientParameter.Username = "AC***********************ba"
    clientParameter.Password = "ce************************27"
    clientParameter.AccountSid = "AC************************ba"

    client := twilio.NewRestClientWithParams(clientParameter)

    params := &api.CreateMessageParams{}
    params.SetContentSid("HT**********************70")
    params.SetMessagingServiceSid("MG******************************0d")
    params.SetTo("whatsapp:+917********4")

    resp, err := client.Api.CreateMessage(params)
    if err != nil {
        fmt.Println(err.Error())
    } else {
        if resp.Sid != nil {
            fmt.Println(*resp.Sid)
        } else {
            fmt.Println(resp.Sid)
        }
    }
}

方案2:直接使用认证号码发送模板消息

移除MessagingServiceSid参数,保留From和ContentSid:

package main

import (
    "fmt"

    "github.com/twilio/twilio-go"
    api "github.com/twilio/twilio-go/rest/api/v2010"
)

func main() {
    clientParameter := twilio.ClientParams{}
    clientParameter.Username = "AC***********************ba"
    clientParameter.Password = "ce************************27"
    clientParameter.AccountSid = "AC************************ba"

    client := twilio.NewRestClientWithParams(clientParameter)

    params := &api.CreateMessageParams{}
    params.SetContentSid("HT**********************70")
    params.SetFrom("whatsapp:+917*******2")
    params.SetTo("whatsapp:+917********4")

    resp, err := client.Api.CreateMessage(params)
    if err != nil {
        fmt.Println(err.Error())
    } else {
        if resp.Sid != nil {
            fmt.Println(*resp.Sid)
        } else {
            fmt.Println(resp.Sid)
        }
    }
}

额外验证步骤

  • 确认ContentSid对应的WhatsApp模板已通过审核,且关联到你的发送号码或消息服务
  • 检查From号码已完成Twilio WhatsApp认证,状态为可用
  • 验证账号权限:确保你的Twilio账号已开通WhatsApp业务权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:33:31