訊息範本

開啟行銷、公用和驗證對話需要訊息範本。這些對話可以是顧客服務訊息或預約提醒、付款或送貨服務更新、提醒等。

必備條件

  • 訊息範本必須先獲得核准,才能用於開啟對話。瞭解詳情。
  • 若要與顧客進行行銷、公用和驗證對話,顧客必須已選擇接收貴企業傳送的訊息。瞭解詳情。

支援的範本種類

請參閱類別

翻譯

傳送訊息範本時,您需要使用 language 欄位指定語言。貴企業應對您要使用的所有翻譯負責。

支援的語言

語言套件

訊息範本會儲存在語言套件中。語言套件是一組適用於特定語言或地區設定的訊息範本元素。若企業對特定語言或地區設定至少支援一種翻譯,系統就會建立該語言或地區的套件。

訊息範本命名空間是屬於特定企業的一組語言套件。

語言政策選項

傳送訊息範本時,若將 language: policy 欄位設為 deterministic(預設值),WhatsApp 將按照要求的語言和地區設定,確切傳遞訊息範本。然後,裝置會向伺服器查詢符合該特定語言的語言套件。

此訊息送達裝置時,裝置會執行下列程序:

  • 政策/代碼檢查 - 使用 "policy": "deterministic""code": "en" 時,裝置是否包含快取的 en 套件?
    • 如果是,請移至元素檢查
    • 若非如此,伺服器中找得到 en 套件嗎?
      • 如果是,請更新本機快取並前往元素檢查
      • 若非如此,請記錄失敗情形,伺服器會透過 Webhook 傳回 structure_unavailable 錯誤,裝置也不會轉譯任何訊息。

  • 元素檢查 - "element": "hello_world" 元素是否存在?
    • 如果是,請在裝置上解除封裝參數並轉譯訊息。
    • 若非如此:
      • 若語言套件的來源是本機快取,請自伺服器下載最新 en 套件,然後重複元素檢查
      • 若是最近自伺服器下載的語言套件,請記錄失敗事件,伺服器會經由 Webhook 傳回 structure_unavailable 錯誤,裝置也不會轉譯任何訊息。

會完全忽略裝置語言/地區設定。

使用 deterministic 政策時可能會發生的問題是您所要求的並不存在。請確認:

  • 命名空間正確
  • 元素名稱正確
  • 該元素有翻譯版語言/地區設定
  • 送出的參數數量符合訊息範本中指定的數量

本地化

訊息範本根據裝置地區設定來本地化訊息,以提供現有的本地化支援。

可本地化的參數

範本包含將動態併入訊息中的參數。以本文件所用的範例而言,訊息範本如下所示:

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

"namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e" 包含 "element_name": "purchase_with_credit_card",您列出的第一個值會取代範本訊息中的 {{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

類型:整數

必要項目。

乘以 1,000 的金額。

範例

{
    "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 epoch 的日期/時間。

至少需要此兩個欄位之一: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

類型:整數

必要項目。

Epoch 時間戳記(以秒為單位)。此欄位預計將停用。

後續步驟

本文件包含訊息範本的相關參考資訊。如需建立和傳送範本的方法指南,請參閱傳送訊息範本。如需可供訊息範本使用的所有參數,請參閱訊息:訊息範本

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