You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

无法通过Facebook Graph API发送带换行的WhatsApp消息

解决WhatsApp模板消息动态多行文本换行报错问题

问题核心

通过Facebook Graph API发送WhatsApp模板消息时,动态文本参数中加入\n\u000A等换行符会触发400错误,提示Param text cannot have new-line/tab characters or more than 4 consecutive spaces;使用%0A则仅显示字符无实际换行。此前该方法正常,近期失效,且因商品数量不固定无法在模板中预设换行结构。

原因分析

Meta近期更新了WhatsApp Business Platform的模板消息规则:模板消息的动态文本参数(template.components.parameters.text)不再允许包含换行符、制表符或连续4个以上空格,这是导致原有方法失效的直接原因。

可行解决方案

1. 改用会话消息(24小时窗口内适用)

如果用户在24小时内主动发起过对话,可放弃模板消息,直接发送自由格式的文本消息,该类型消息支持\n换行:

POST https://graph.facebook.com/v20.0/XXXXXXXXXXXXXXXX/messages
Content-Type: application/json; charset=UTF-8

{
  "messaging_product": "whatsapp",
  "to": "XXXXXXXXXXX",
  "type": "text",
  "text": {
    "body": "Jon Doe\n2\n *1. Wrapped Plate, 8 in | 1 Pc*\nRate: 3.000\nQty: 8000\nAmount: 24000.00\n\n *2. Bottle Brush | 1 Pc*\nRate: 18.644\nQty: 11\nAmount: 242.00\n\nTotal: 24242.00\nAttn: John Lee\nContact: +91XXXXXXXXX"
  }
}

注意:该方法仅在用户主动对话的24小时有效期内可用,超出窗口无法发送。

2. 改用媒体消息(无时间限制)

将订单详情生成图片、PDF等媒体文件,通过附件形式发送,完全不受文本格式限制,适合任意数量的商品排版:

POST https://graph.facebook.com/v20.0/XXXXXXXXXXXXXXXX/messages
Content-Type: application/json; charset=UTF-8

{
  "messaging_product": "whatsapp",
  "to": "XXXXXXXXXXX",
  "type": "image",
  "image": {
    "link": "https://your-domain.com/order-XXXXXX-details.png",
    "caption": "您的订单详情如下:"
  }
}

需要自行实现订单内容到媒体文件的生成逻辑,确保文件可公开访问。

3. 调整模板结构(仅固定行数场景适用)

若商品数量范围有限,可创建对应数量的模板,在模板body中预设换行结构,动态参数仅填充单行内容。但该方法灵活性差,不适用于商品数量完全不固定的场景。

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

火山引擎 最新活动