Twilio Studio使用已批准Content Template SID发WhatsApp消息遇deliveryFailure错误
解决Twilio Studio中WhatsApp模板发送的deliveryFailure错误
针对你遇到的错误A text message body or media urls must be specified,即使已经配置了Meta批准的模板SID,以下是具体排查和解决步骤:
清理发送组件的冗余配置
打开Studio Flow中的发送消息组件,检查是否同时填写了Body字段。如果误填了Body(哪怕是空值),Twilio会优先尝试发送普通文本消息,而非使用模板。请确保只保留Content Sid和Content Variables的配置,清空Body字段。校验Content Variables的格式正确性
模板变量的JSON格式必须严格符合要求:- 字符串类型的变量必须用英文双引号包裹,比如
{"1":"2024-05-20", "2":"14:00"},如果变量是数字则无需引号。 - 避免多余的逗号、中文符号,确保JSON结构合法。格式错误会导致Twilio无法解析模板内容,进而触发需要Body的错误提示。
- 字符串类型的变量必须用英文双引号包裹,比如
确认Content SID与发送号码的绑定关系
登录Twilio控制台,找到对应Content Sid(HX开头)的模板详情:- 验证该模板是否属于你的账号,且绑定的WhatsApp发送号码与流程中使用的
From: whatsapp:+14xxxxx完全一致。 - 检查模板类型:如果是带媒体的模板,必须在发送组件中填写对应的媒体URL;如果是纯文本模板则无需此项。
- 验证该模板是否属于你的账号,且绑定的WhatsApp发送号码与流程中使用的
替换为专用的WhatsApp发送组件
确保流程中使用的是Send WhatsApp Message组件,而非通用的Send Message组件。专用组件对WhatsApp模板的支持更完善,能避免通用组件的兼容性问题。绕过Studio直接测试API调用
用Twilio API直接发送请求,排除Studio配置的问题。示例curl命令如下(替换占位符为你的账号信息):curl -X POST "https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Messages.json" \ --data-urlencode "To=whatsapp:+57xxxxx" \ --data-urlencode "From=whatsapp:+14xxxxx" \ --data-urlencode "ContentSid=HX9f1xxxxxxxxxxxxxxxxxxxx" \ --data-urlencode "ContentVariables={\"1\":\"预约日期\", \"2\":\"预约时间\"}" \ -u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:你的Auth Token"如果API调用成功,说明问题出在Studio的配置细节上;如果API也报错,建议联系Twilio技术支持排查账号或模板的底层问题。
内容的提问来源于stack exchange,提问作者Carlos Delgado
相关产品推荐
相关产品推荐

