通过Twilio内容模板发送WhatsApp消息时添加换行的问题
在Twilio WhatsApp模板单个变量中添加换行的可行方案
你遇到的问题是直接传递\n会触发Twilio的无效内容错误(63005),而\f的跨客户端兼容性差。以下是两种可行的解决办法:
方法一:使用双重转义的换行符
在拼接列表时,用\\n替代\n,经过json.dumps序列化后,Twilio能正确解析为换行符,且所有WhatsApp客户端都能正常显示:
my_list = ["xxx", "yyy", "zzz"] # 用双重转义的换行符拼接 list_str = "\\n".join(my_list) # 传递给Twilio的代码保持不变 message = client.messages.create( from_='whatsapp:+XXX', content_sid='HXXX', content_variables=json.dumps({"1": list_str}), to='whatsapp:+XXX', messaging_service_sid='XXXXX' )
方法二:调整Twilio模板结构
如果允许修改模板,可以在模板中预先添加换行占位,将列表项拆分为多个变量。比如模板内容设为:
{{1}} {{2}} {{3}}
然后在代码中直接传递单个列表项:
my_list = ["xxx", "yyy", "zzz"] message = client.messages.create( from_='whatsapp:+XXX', content_sid='HXXX', content_variables=json.dumps({ "1": my_list[0], "2": my_list[1], "3": my_list[2] }), to='whatsapp:+XXX', messaging_service_sid='XXXXX' )
关键说明
- 错误63005的核心原因是直接传递的
\n被Twilio判定为不符合模板内容规范,双重转义后\\n会被正确解析为换行,且不会触发内容校验错误。 - 避免使用非标准换行符(如
\f),这类字符的客户端兼容性无法保证。
内容的提问来源于stack exchange,提问作者Marcelo
相关产品推荐
相关产品推荐

