消息模板

必须使用消息模板才能开启营销、交易相关和身份验证对话。这些对话可以是客户服务消息,也可以是预约提醒、支付或配送更新、提醒等。

要求

  • 消息模板必须通过审核才能用于开启对话。详细了解。
  • 如要开启与客户的营销、交易相关和身份验证对话,该客户必须已订阅您公司的消息。详细了解。

支持的模板类别

请参阅类别

翻译

发送消息模板时,需要使用 language 字段指定语言。您的企业负责您要使用的所有翻译。

支持的语言

支持的语言

以下是消息模板支持的语言。

语言代码

南非荷兰语

af

阿尔巴尼亚语

sq

阿拉伯语

ar

阿塞拜疆语

az

孟加拉语

bn

保加利亚语

bg

加泰罗尼亚语

ca

中文(中国大陆)

zh_CN

中文(香港)

zh_HK

中文(台湾)

zh_TW

克罗地亚语

hr

捷克语

cs

丹麦语

da

荷兰语

nl

英语

en

英语(英国)

en_GB

英语(美国)

zh_CN

爱沙尼亚语

et

菲律宾语

fil

芬兰语

fi

法语

fr

德语

de

希腊语

el

古吉拉特语

gu

豪萨语

ha

希伯来语

he

印地语

hi

匈牙利语

hu

印尼语

编号

爱尔兰语

ga

意大利语

it

日语

ja

卡纳达语

kn

哈萨克语

kk

韩语

ko

老挝语

lo

拉脱维亚语

lv

立陶宛语

lt

马其顿语

mk

马来语

ms

马拉雅拉姆语

ml

马拉地语

mr

挪威语

nb

波斯语

fa

波兰语

pl

葡萄牙语(巴西)

pt_BR

葡萄牙语(葡萄牙)

pt_PT

旁遮普语

pa

罗马尼亚语

ro

俄语

ru

塞尔维亚语

sr

斯洛伐克语

sk

斯洛文尼亚语

sl

西班牙语

es

西班牙语(阿根廷)

es_AR

西班牙语(西班牙)

es_ES

西班牙语(墨西哥)

es_MX

斯瓦希里语

sw

瑞典语

sv

泰米尔语

ta

泰卢固语

te

泰语

th

土耳其语

tr

乌克兰语

uk

乌尔都语

ur

乌兹别克语

uz

越南语

vi

祖鲁语

zu

语言包

消息模板存储在语言包中。语言包是用于特定语言/区域的消息模板元素捆绑包。如果商家至少支持某语言/区域的一种翻译,则系统会创建该语言/区域的专用语言包。

对于特定公司而言,消息模板的命名空间即为语言包的捆绑包。

语言政策选项

如果发送消息模板时将 language: policy 字段设置为默认值 deterministic,WhatsApp 会完全按照要求的语言和区域发送消息模板。然后设备会向服务器查询该特定语言的语言包。

当此消息发送到设备时,该设备会执行以下操作:

  • 政策/代码检查 - 在 "policy": "deterministic""code": "en" 的情况下,设备上是否有已缓存的 en 包?
    • 如果是,则转至元素检查
    • 如果否,能否在服务器上找到 en 包?
      • 如果是,则更新本地缓存并转至元素检查
      • 如果否,记录失败,服务器会通过 Webhooks 返回 structure_unavailable 错误,并且设备上不会显示消息。

  • 元素检查"element": "hello_world" 元素是否存在?
    • 如果是,解压参数并在设备上显示消息。
    • 如果否:
      • 如果语言包来自本地缓存,则从服务器下载最新的 en 包并重复元素检查
      • 如果语言包是最近才从服务器下载的,则记录失败,服务器会通过 Webhooks 返回 structure_unavailable 错误,并且设备上不会显示消息。

完全忽略设备的语言/区域设置。

在使用 deterministic 策略时可能出现一个问题,即请求的内容不存在。请确保:

  • 命名空间正确
  • 元素名称正确
  • 该元素存在语言/区域翻译
  • 所发出参数的数量与消息模板中指定的数量一致

本地化

消息模板会根据设备的区域设置,对消息执行本地化,从而提供开箱即用的本地化支持。

可本地化参数

模板包含将动态整合到消息中的参数。在本文档使用的示例中,消息模板如下所示:

"You made a purchase for {{1}} using a credit card ending in {{2}}."

对于包含 "element_name": "purchase_with_credit_card""namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e",您列出的第一个值将替换模板消息中的 {{1}} 变量,您列出的第二个值将替换 {{2}} 变量。

传入负载的参数数量必须与 template 对象中的参数数量一致。否则,您会收到一个回调,通知您显示消息模板时出现问题。

其中一些参数(如 date_timecurrency)可以本地化,因此会根据客户的语言和区域偏好进行相应显示。如果设备在对参数进行本地化时失败,则会默认为 fallback_value

fallback_value 外,如还需指定币种和日期,请使用 currencydate_time 对象。这样客户端可以尽可能以最佳方式本地化这些数据,并且只有在无法本地化这些数据时才会默认为 fallback_value

下表所示为 localizable_params 选项:

参数

名称描述

fallback_value

类型:字符串

必要。

本地化失败时显示的默认文本。所有本地化参数都必须要有回调值。指定文本时,只需要回调值。

currency

类型:currency 对象

可选。

如果使用 currency 对象,则此对象包含必要参数 currency_codeamount_1000

date_time

类型:date_time 对象

可选。

如果使用 date_time 对象,则需要进一步定义日期和时间。请参阅下面的示例,详细了解其中两个选项。

currency 对象

Whatsapp Business API 客户端会根据特定的本地化要求尝试对货币进行格式化。

名称描述

currency_code

类型:字符串

必要。

ISO 4217 中定义的货币代码。

amount_1000

类型:整数

必要。

数量乘以 1000。

示例

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

date_time 对象

Whatsapp Business API 客户端会根据特定的本地化要求对日期/时间进行格式化。支持的日期和时间格式如下所示:

  • 组成式时间 — 用时间元素组合表示时间(例如,星期几、月份、小时等)无论客户在哪个时区,都应令时间设置保持一致。
  • Unix 时间 — 根据客户所在时区显示时间。

DateTime

名称描述

component

类型:DateTimeComponent

如果 unix_epoch 不存在,则为必要项。

按元素显示日期/时间。

unix_epoch

类型:DateTimeUnixEpoch

如果 component 不存在,则为必要项。

按照 Unix 时间显示日期/时间。

至少填写以下字段之一:componentunix_epoch。如使用,仅可保留其中之一。

DateTimeComponent

名称描述

day_of_week

类型:字符串

可选。

如果此值与根据日期(如指定)推导出的值不同,请使用推导出的值。字符串和数字均可接受。
选项:"MONDAY"1"TUESDAY"2"WEDNESDAY"3"THURSDAY"4"FRIDAY"5"SATURDAY"6"SUNDAY"7

year

类型:整数

可选。

年份。

month

类型:整数

可选。

月份。

day_of_month

类型:整数

可选。

日期。

hour

类型:整数

可选。

小时。

minute

类型:整数

可选。

分钟。

calendar

类型:字符串

可选。

日历类型。
选项:GREGORIANSOLAR_HIJRI

示例

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

DateTimeUnixEpoch 将停用。DateTimeComponent 将在未来成为默认选项。请更改您的代码以避免出现问题。

名称描述

timestamp

类型:整数

必要。

新纪元时间戳(以秒数计)。本字段将被停用。

后续步骤

本文档包含消息模板相关参考信息。如需获取创建和发送模板的相关指南,请参阅发送消息模板。如需了解消息模板中所有可用参数,请参阅消息 > 消息模板

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager