调用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
相关产品推荐
相关产品推荐

