无法通过 Facebook Graph API 发送带有换行符的 Whatsapp 消息

问题描述 投票:0回答:1

我想在 Whatsapp 消息中打印动态多行文本。消息通过 Facebook Graph API 发送。我使用

\\n
字符插入新行。请参阅下面的请求。

要求:

POST https://graph.facebook.com/v20.0/XXXXXXXXXXXXXXXX/messages

Content Type: application/json; charset=UTF-8

Body:
{"messaging_product":"whatsapp","to":"XXXXXXXXXXX","type":"template","template":{"language":{"code":"en"},"name":"order_updated_message","components":[{"type":"body","parameters":[{"type":"text","text":"Jon Doe"},{"type":"text","text":2},{"type":"text","text":" *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"},{"type":"text","text":24242.00},{"type":"text","text":"John Lee"},{"type":"text","text":"+91XXXXXXXXX"}]}]}}

前几天请求成功,但后来一直失败。请参阅下面的失败响应。

回复:

HTTP Status: 400 Bad Request

{
    "error": {
        "message": "(#100) Invalid parameter",
        "type": "OAuthException",
        "code": 100,
        "error_data": {
            "messaging_product": "whatsapp",
            "details": "Param text cannot have new-line/tab characters or more than 4 consecutive spaces"
        },
        "fbtrace_id": "XXXXXXXXXXXXXXXXXXXX"
    }
}

如果我删除

\\n
字符,请求就会成功。所以我假设失败是由
\\n
本身引起的。

我还尝试将

\\n
替换为以下内容:

  • \n
    --> 同样的错误
  • \u000A
    --> 同样的错误
  • %0A
    --> 字符按原样显示。 (没有换行)

你能告诉我出了什么问题吗?

注意:消息正文包含客户订购的商品。项目的数量可能因订单而异,因此每条消息的行数也可能有所不同。因此,我无法在消息模板中添加新行。

facebook-graph-api newline whatsapp whatsapp-cloud-api
1个回答
0
投票

我也遇到过这个问题。 WhatsApp 似乎改变了规则。他们曾经允许在参数数据中使用

\\n
,但现在似乎不再允许了。

我确实找到了解决方法。您可以使用

\r
代替。这是一个回车符,它将光标移回到行的开头,而不添加新行。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.