支援結束通知:2026 年 10 月 30 日, AWS 將結束對 Amazon Pinpoint 的支援。2026 年 10 月 30 日之後,您將無法再存取 Amazon Pinpoint 主控台或 Amazon Pinpoint 資源 (端點、客群、行銷活動、旅程和分析)。如需詳細資訊,請參閱 Amazon Pinpoint 終止支援。注意:與 SMS、語音、行動推播、OTP 和電話號碼驗證相關的 APIs 不受此變更影響,並受 AWS 最終使用者傳訊支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用訊息範本協助程式
透過 Amazon Pinpoint 範本,客戶可以根據 Handlebars.js 語言建立可重複使用的訊息範本。協助程式提供多種功能,包括可以將價格轉換成特定區域的貨幣,或是依時區新增地點。協助程式可以將特定字串或整數當作值,或特定的 Amazon Pinpoint 訊息變數。
這些是協助程式的類別,下節將有詳細描述:
本節介紹 Handlebars 提供的內建協助程式。如需完整清單,請參閱 https
-
each– 迭代清單。注意
清單大小上限是 15 個項目。
-
if– 評估陳述式。
- each
-
迭代清單。這個協助程式只使用區塊陳述式。您可以選擇性地:
-
傳遞請求中的
@index,以引用目前循環索引。 -
使用
this協助程式,引用目前正在逐一查看的元素。 -
使用
<li>標籤,傳回清單中的協助程式回應。
用途
{{#eachvalue}}位置
{{@index}}的值是{{this}}。{{else}}條件為 false。
{{/each}}在區塊陳述式中,
each必須以井字號 (#) 開頭,並以{{/each}}結尾。範例
就本範例而言,
each用於傳回使用者最喜歡的顏色的清單。若是false,將傳回else陳述式。如果請求是這樣:{{#each User.UserAttributes.FavoriteColors}}<li>{{this}}</li>{{else}}您沒有喜歡的顏色。{{/each}}傳回-
red -
藍色 -
黃色
true 陳述式。
-
- 如
-
評估某件事是否是 true,並根據評估傳回回應。
用途
{{#ifvalue}}值未定義
{{else}}值未定義
{{/if}}在區塊陳述式中,
if必須以井字號 (#) 開頭,並以{{/if}}結尾。範例
就本範例而言,
if協助程式用於評估是否是使用者的名字。如果找到名稱,會傳回問候語,並在回應中傳遞使用者的名字。否則else陳述式會傳回替代問候語。{{#if User.UserAttributes.FirstName.[0]}}Hello{{User.UserAttributes.FirstName.[0]}},{{else}}您好,{{/if}}如果
if協助程式是 true,則傳回您好,簡。
本節介紹條件式協助程式。
條件式協助程式可以在單行或區塊陳述式中使用。不論使用哪種協助程式,都可以自訂回應。您可以在單行和區塊陳述式中傳遞額外的條件式協助程式。以下條件式協助程式先顯示單行的使用方法,然後顯示使用了選用 else 子句的區塊陳述式。這些是條件式協助程式:
-
and– 比較所有傳遞的元素是否相等。 -
eq– 測試兩個元素是否相等。 -
gt– 測試某個元素是否大於另一個。 -
gte– 測試某個元素是否大於或等於另一個。 -
if– 評估某件事是否屬實。 -
lt– 測試一個元素是否小於另一個元素。 -
lte– 測試一個元素是否小於或等於另一個元素。 -
neq– 評估兩個元素是否不相等。 -
not– 反轉布林值操作的回應。 -
or– 比較引數中的任何元素是否相等。
- 以及
-
比較引數中傳遞的所有元素是否相等,然後根據結果傳回回應。這個協助程式可用於非布林值。您必須為條件傳遞至少兩個元素。
用途
-
{{andvalueavaluebvaluecvaluedyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#andvalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/and}}在區塊陳述式中,
and必須以井字號 (#) 開頭,並以{{/and}}結尾。
範例
就本範例而言,
and區塊陳述式使用eq,判斷傳遞給Location.City和Location.Country屬性的兩個字串,是否為 true。如果兩個條件相等,將傳回 true 陳述式。如果其中一個屬性是 false,將傳回else陳述式。{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}您住在美國洛杉磯。{{else}}您不住在美國洛杉磯。{{/and}} -
- eq
-
測試兩個元素是否相等,或者一個元素的值是否等於傳遞的字串。
用途
-
{{eqvalueavaluebyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#eqvalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/eq}}在區塊陳述式中,
eq必須以井字號 (#) 開頭,並以{{/eq}}結尾。
範例
就本範例而言,
eq用於評估User.UserAttributes.FavoriteColors.[0]的值是否是紅色。如果回應是true,將傳回 true 陳述式。如果回應是false,將傳回else陳述式。{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}您最喜歡的顏色是紅色。{{else}}您不喜歡紅色。{{/eq}} -
- gt
-
測試某個元素的值是否大於另一個。
用途
-
{{gtvalueavaluebyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#gtvalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/gt}}在區塊陳述式中,
gt必須以井字號 (#) 開頭,並以{{/gt}}結尾。
範例
在此範例中,協助程式會比較
User.UserAttributes.UserAge.[0]屬性的值與字串17,以驗證使用者的年齡是否大於 17。如果回應是true,將傳回 true 陳述式。如果回應是false,將傳回else陳述式。{{#gt User.UserAttributes.UserAge.[0] "17"}}您已滿租車年齡。{{else}}您未到租車年齡。{{/gt}} -
- gte
-
測試某元素的值是否大於或等於另一個。
Usage-
{{gtevalueavaluebyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#gtevalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/gte}}在區塊陳述式中,
get必須以井字號 (#) 開頭,並以{{/gte}}結尾。
範例
在此範例中,協助程式會比較
User.UserAttributes.UserAge.[0]屬性與字串18,以驗證使用者的年齡是否大於或等於 18。如果回應是true,將傳回 true 陳述式。如果回應是false,將傳回else陳述式。{{#gte User.UserAttributes.UserAge.[0] "18"}}您已滿租車年齡。{{else}}您未到租車年齡。{{/gte}} -
- 如
-
評估某件事是否是 true,並根據評估傳回回應。
用途
-
{{#ifvalue}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#if}}value條件為 true。
{{else}}條件為 false。
{{/if}}在區塊陳述式中,
if必須以井字號 (#) 開頭,並以{{/if}}結尾。
範例
就本範例而言, 協助程式用於評估是否是使用者的名字。如果找到名稱,會傳回問候語,並在回應中傳遞使用者的名字。否則 else 陳述式會傳回替代問候語。
{{#if User.UserAttributes.FirstName.[0]}}您好{{User.UserAttributes.FirstName.[0]}},{{else}}您好,{{/if}}如果協助程式為 true
,則傳回 Hello Jane。 -
- lt
-
測試某元素的值是否小於另一個元素的值。
用途
-
{{ltvalueavaluebyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#ltvalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/lt}}在區塊陳述式中,
lt必須以井字號 (#) 開頭,並以{{/lt}}結尾。
範例
在此範例中,協助程式會將
User.UserAttributes.UserAge.[0]屬性與字串18進行比較,以驗證使用者的年齡是否小於 18 歲。如果回應是true,將傳回 true 陳述式。如果回應是false,將傳回else陳述式。{{#lt User.UserAttributes.UserAge.[0] "18"}}您未到租車年齡。{{else}}您已滿租車年齡。{{/lt}} -
- lte
-
測試某元素的值是否小於或等於另一個。
用途
-
{{ltevalueavaluebyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#ltevalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/lte}}在區塊陳述式中,
lte必須以井字號 (#) 開頭,並以{{/lte}}結尾。
範例
在此區塊陳述式中,協助程式會將
User.UserAttributes.UserAge.[0]屬性與字串17進行比較,以驗證使用者的年齡是否等於 17 或更小。如果回應是true,將傳回 true 陳述式。如果回應是false,將傳回else陳述式。{{#lte User.UserAttributes.Age.[0] "17"}}您未到租車年齡。{{else}}您已滿租車年齡。{{/lte}} -
- neq
-
測試兩個元素是否不相等。
用途
-
{{neqvalueavaluebyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#neqvalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/neq}}在區塊陳述式中,
neq必須以井字號 (#) 開頭,並以{{/neq}}結尾。
範例
在此區塊陳述式中,會針對字串 檢查
User.UserAttributes.FavoriteColors.[0]屬性。如果回應是Redtrue,將傳回 true 陳述式。如果回應是false,將傳回else陳述式。{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}您不喜歡紅色。{{else}}您喜歡紅色。{{/neq}} -
- 非
-
反轉布林值運算的回應,如果
not是正比較,則傳回true陳述式。如果回應是 false,將傳回 else 陳述式。用途
-
{{notvalueyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。 -
{{#not}}value條件為 true。
{{else}}條件為 false。
{{/not}}在區塊陳述式中,
not必須以井字號 (#) 開頭,並以{{/not}}結尾。
範例
在此區塊陳述式中,會使用
eq協助程式,針對字串紅色檢查User.UerAttributes.FavoriteColors.[0]屬性。然後not協助程式傳回與eq協助程式相反的內容。如果回應傳回紅色以外的顏色,將傳回true陳述式。如果回應傳回紅色,則會傳回表示 false 陳述式的else陳述式。{{#not (eq User.UserAttributes.Favorite.Colors.[0] "red")}}您不喜歡紅色。{{else}}您喜歡紅色。{{/not}}範例
就本範例而言,
{{not (eq User.UserAttributes.FavoriteColors.[0] "red")}}如果
User.UserAttributes.FavoriteColors.[0]是紅色,傳回 false。 -
- 或
-
比較引數中的任何元素是否相等,然後根據結果傳回回應。這個協助程式可用於非布林值。
用途
-
{{orvalueavaluebvaluecvaluedyes='y' no='n'}}您可以將
y和n替換成其他值,例如yes和no,或者您想傳回的任何其他字串,視條件而定。您必須為條件傳遞至少兩個元素。 -
{{#orvalueavalueb}}條件為 true。
{{else}}條件為 false。
{{/or}}在區塊陳述式中,
or必須以井字號 (#) 開頭,並以{{/or}}結尾。
範例
就本
or區塊陳述式而言,將使用eq協助程式,另外比較Location.City屬性的兩個字串。如果其中一個屬性是true,將傳回 true 陳述式。如果一個或多個回應是false,將傳回else陳述式。{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}您居住在美國西岸。{{else}}您不居住在美國西岸。{{/or}} -
本節介紹以下字串協助程式:
-
abbreviate– 截斷值。 -
capitalize– 將空白字元之間的每個單字變成大寫。 -
capitalizeFirst– 將值的第一個字元變成大寫。 -
center– 將值置中。 -
cut– 削減值。 -
dateFormat– 設定日期樣式。 -
inflect– 根據計數傳回單數或複數字串。 -
join– 連接陣列、迭代器或可迭代物件。 -
ljust– 將值調整成對齊左邊界。 -
lower– 將值轉換為小寫。 -
now– 列印目前日期。 -
ordinalize– 將數值序數化。 -
replace– 將一個字串替換成另一個字串。 -
rjust– 將值調整成右邊界。 -
slugify– 將值轉換為小寫並移除非單字字元、將空白字元轉換為連字號,並移除尾項空白字元。 -
stripTags– 從值刪除 [X]HTML 標籤。 -
substring– 將傳遞值的子字串作為新字串傳回。 -
upper– 將傳遞值轉換為大寫。
-
yesno– 將 true、false 和 no 替換成 Yes、No 和 Maybe。
- 縮寫
-
如果值超過指定的數目,將截斷值。長度計數中包含空白字元。回應中的省略符號,表示截斷值。省略符號會計入回應中的截斷值。如果您的資料表很大,空間卻很小,這類協助程式很有用。截斷儲存格中的值,可以讓資料表看起來更一致。
用途
{{abbreviate,將valueX}}X替換成要保留的字元數。不支援負數。範例
就本範例而言,
abbreviate用於將User.UserAttributes.LastName.[0]截斷成六 (6) 個字元。回應包含省略符號,共計為六個字元數。{{abbreviate傳回User.UserAttributes.LastName.[0]6}}Ale...如果[0]的值是Alejandro。 - 大寫
-
將空白字元之間的每個單字變成大寫。
用途
{{capitalizevalue}}範例
就本範例而言,
Attributes.description.[0]項目每個字的開頭字母大寫。{{capitalizeAttributes.description.[0]}}如果
Attributes.description.[0]傳回我的第一篇文章,如果Attributes.description.[0]的值是我的第一篇文章。 - capitalizeFirst
-
將值的第一個字元變成大寫。
用途
{{capitalizeFirstvalue}}範例
就本範例而言,
Attributes.description.[0]項目第一個字的第一個字元大寫。{{capitalizeFirst傳回Attributes.description.[0]}}我的第一篇文章,如果的值是Attributes.description.[0]我的第一篇文章。範例
- center
-
將指定寬度欄位中的值,依指定的數字置中。您可以傳遞要顯示的填補字元,或將欄位留空 (選用)。如果沒有傳遞任何字元,則使用空白字元。
用途
{{center,將valuesize=X[pad=" "}}X替換成一個數值。如果將
pad留空,會在回應中使用空白字元當作填補。如果您傳遞一個字元,該字元會顯示在填補的每個空間中。不支援負數。範例
就本範例而言,
Location.City的值是尺寸19。{{center傳回Location.Citysize=19}}如果
Location.City是洛杉磯,傳回" Los Angeles "。請注意,範例輸出中顯示的引號,只是用來表示強調。 - 剪下
-
從字串移除指定的值。
用途
{{cut,將引號參數中的空格,替換成要剪下的值。如果沒有傳遞任何參數值,會使用空白字元。value[" "]}}範例
此範例從
Location.City屬性刪除字母e。{{cut傳回Location.City"e"}}如果
[Location.City是洛杉磯,傳回Los Angls。 - dateFormat
-
設定任何回應中日期的預設日期樣式。如需時區 ID 的清單,請參閱 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
。 用途
{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}format參數必須是以下其中一個:-
「
full」:完整日期格式。例如:Tuesday, September 19, 2020 -
「
long」:長日期格式。例如:September 19, 2020 -
「
medium」:中等日期格式。例如:Sept 19, 2020 -
「
short」:短日期格式。例如:9/19/20 -
「
pattern」:使用自訂日期模式格式。如需日期模式的詳細資訊,請參閱 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html。
「
locale」:使用當地的日期格式。如需地區設定的詳細資訊,請參閱 https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-。 如果未傳遞格式,預設將使用
medium。範例
就本範例而言,
的User.UserAttributes.StartDate.[0][0]項目是09/19/2020,且使用了America/Los_Angeles時區的full日期格式,向使用者傳送了一則訊息。We can meet with you any time on{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.傳回我們可以在 2020 年 9 月 19 日星期二的任何時段與您見面。 -
- inflect
-
根據計數值傳回單數或複數字串。
用途
{{inflectcountsingularplural[includeCount=false]}}-
輸入要在引數中傳遞的字串的單數和複數形式。
-
若將
includeCount設為false,回應中不會傳回任何計數。如果設為true,回應中將包含count。
範例
以下範例說明購買蘋果的過程 (有和沒有
includeCount)。Thank you for your purchase of {{inflect傳回:3appleapplesincludeCount=false}}.感謝您購買蘋果。如果
includeCount設為true,回應是感謝您購買 3 顆蘋果。 -
- join
-
連接陣列、迭代器或可迭代物件。回應傳回一個清單,清單中的每個值都由您在
join中傳遞的字元連接起來。例如您可以使用逗號 (,) 分隔值。這個協助程式中的值,必須是沒有屬性位置索引的清單。例如這可能是Attributes.custom_attribute。用途
{{joinvalue" // " [prefix=""] [suffix=""]}}範例
就本範例而言,會傳回色彩清單,並以逗號和空格 (
", ") 分隔清單:{{join傳回Attributes.favorite_colors","}}藍色、紅色、綠色如果Attributes.favorite_colors是清單藍色、紅色、綠色。 - ljust
-
將值調整成對齊左邊界,並在右邊增加空格,讓值的長度與號碼相符。不支援負數。
您可以傳遞要顯示的
pad字元,或將欄位留空 (選用)。如果將pad值留空,預設值是空白字元。用途
{{ljust,valuesize=X[pad=" "]}}X是值的總長度,包括空白字元。範例
就本範例而言,對 Location.City 套用向左對齊值
15。{{ljust傳回Location.Citysize=15}}如果
Location.City的值是洛杉磯,傳回"Los Angeles "。請注意,範例輸出中顯示的引號,只是用來表示強調。 - 小寫
-
將值轉換為全部小寫。
用途
{{lowervalue}}範例
在此範例中,
[0]的項目User.UserAttributes.LastName.[0]會變更為小寫。{{lower傳回User.UserAttributes.LastName.[0]}}santos如果Santos是[0]的值。 - 立即
-
根據傳遞的時區 ID,印出目前的日期。如需時區 ID 的清單,請參閱 https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
。 用途
{{now [format="format"] [tz=timeZoneId] [locale=localeID]}}format參數必須是以下其中一個:-
「
full」:完整日期格式。例如:Tuesday, September 19, 2020 -
「
long」:長日期格式。例如:September 19, 2020 -
「
medium」:中等日期格式。例如:Sept 19, 2020 -
「
short」:短日期格式。例如:9/19/20 -
「
pattern」:日期模式。如需日期模式的詳細資訊,請參閱 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html。
「
locale」:使用當地的日期格式。如需地區設定的詳細資訊,請參閱 https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-。 如果未傳遞格式,預設將使用
medium。範例
就本範例而言,依
medium格式傳回洛杉磯目前的日期。{{now "medium" tz=傳回America/Los_Angeles}}2020 年 9 月 19 日。 -
- 序數化
-
將引數中傳遞的數值序數化。例如,
1會排序為1st,而2會排序為2nd。只支援數值。用途
{{ordinalize [number]}}範例
就本範例而言,已將
User.UserAttributes.UserAge的[0]項目序數化,並連同訊息一起傳回。Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!傳回22的序數22nd。祝您 22 歲生日快樂! - 取代
-
將一個字串替換成另一個字串。字串或數值必須是常值。不支援萬用字元。
用途
{{replacestringToReplacereplacementValue}}範例
就本範例而言,底線 (_) 將取代空白字元。
{{replace傳回Location.City" " "_"}}如果
Location.City是洛杉磯,傳回Los_Angeles。 - rjust
-
將值與右邊界對齊,並在左邊增加空格,讓值的長度與號碼相符。不支援負數。
您可以傳遞要顯示的
pad字元,或將欄位留空 (選用)。如果將pad值留空,預設值是空白字元。用途
{{rjust,valuesize=X[pad=" "]}}X是值的總長度,包括空白字元。範例
就本範例而言,對
Location.City屬性套用向右對齊值15。{{rjust傳回Location.Citysize=15}}如果
Location.City是洛杉磯,傳回" Los Angeles"。請注意,輸出中顯示的引號,只是用來表示強調。 - slugify
-
將傳遞的值替換成小寫,移除非單字字元 (英數字元和底線),將空白字元轉替換成連字號,並移除任何前置或後置空白字元。
用途
{{slugifyvalue}}範例
就本範例而言,對
Location.City屬性執行 slugify。{{slugify傳回Location.City}}如果
Location.City是洛杉磯,傳回los-angeles。 - stripTags
-
從值刪除 [X]HTML 標籤。
用途
{{stripTagsvalue}}範例
就本範例而言,移除 User.UserAttributes.interest.[0] 的 HTML 標籤。
{{stripTags傳回User.UserAttributes.interests.[0]}}如果
User.UserAttributes.interests.[0]是<h1>Art</h1>,傳回Art。 - substring
-
傳回新字串,當作傳遞值的子字串。長度和位置由
startOffset和endOffset參數決定,這些參數必須是整數。不支援負數。如果未傳遞endOffset,子字串會使用字串的原始結尾值。用途
{{substringvaluestartOffset[endOffset]}}範例
就本範例而言,為 Location.City 屬性套用偏移量 4 和 endOffset 9。
{{substring傳回Location.City 4 9}}如果洛杉磯是
Location.City的值,就是Angel洛杉磯。 - 大寫
-
將傳遞值轉換為大寫。
用途
{{uppervalue}}範例
就本範例而言,
User.UserAttributes.LastName屬性的[0]項目會轉換為全部大寫。{{upper User.UserAttributes.LastName.[0]}}傳回如果
User.UserAttributes.LastName.[0]值是Roe,傳回ROE。 - yesno
-
將
true、false和NULL替換成Yes、No和Maybe。用途
{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}範例
就本範例而言,
IsUserSubscribed屬性會傳回使用者是否已訂閱特定清單。{{yesno Attributes.IsUserSubscribed}}傳回如果
Attributes.IsUserSubscribed是true,傳回yes。
本節介紹數學和編碼協助程式。
-
add– 傳回兩個數字的總和。 -
ceiling– 將整數向上取整。 -
decode64– 將 base64 編碼值解碼為字串。 -
divide– 傳回兩個數字的商數。 -
encode64– 使用 base64 編碼字串。 -
floor– 將整數四捨五入,向下取整。 -
md5– 使用 MD5 演算法對傳遞的字串進行雜湊處理。 -
modulo– 使用浮點傳回兩個數字的其餘部分。 -
multiply– 傳回兩個數字的乘積。 -
round– 將小數四捨五入到最接近的整數。 -
sha256– 使用 SHA-256 對傳遞的字串進行雜湊處理。 -
sha512– 使用 SHA-512 對傳遞的字串進行雜湊處理。 -
subtract– 傳回兩個數字的差值。 -
uuid– 隨機產生 128 位元格式的 UUID。
- add
-
傳回兩個數字的總和及浮點數。
用途
{{addarg1arg2}}範例
{{add傳回5 2.3}}7.3 - 向上取整
-
將整數向上取整,也就是最接近傳遞值的最高整數。
用途
{{ceilingvalue}}範例
{{ceiling傳回5.23}}6 - decode64
-
將 base64 編碼值解碼為字串。
用途
{{decode64 "string"}}範例
{{decode64 "傳回SGVsbG8gd29ybGQ="}}Hello World - 除
-
傳回兩個數字的商數,包括浮點數。
用途
{{dividearg1arg2}}範例
{{divide傳回5 2.3}}2.17391304 - encode64
-
使用 base64 編碼在引數中傳遞的字串。
用途
{{encode64 "string"}}範例
{{encode64 "Hello World"}}SGVsbG8gd29ybGQ= - 向下取整
-
將整數四捨五入,向下取整,也就是最接近傳遞值的最低整數。
用途
{{floorvalue}}範例
{{floor傳回5.23}}5 - md5
-
使用 MD5 演算法對傳遞的字串進行雜湊處理。
用途
{{md5 "string"}}範例
{{md5 "Hello World"}}3e25960a79dbc69b674cd4ec67a72c62 - 模數
-
使用浮點數傳回兩個數字的餘數。
用途
{{moduloarg1arg2}}範例
{{modulo傳回7 2}}1 - 乘
-
傳回兩個數字的總和及浮點數。
用途
{{multiplyarg1arg2}}範例
{{multiply傳回5 2.3}}11.5 - 四捨五入
-
將小數位向上或向下捨入到最接近的整數。
用途
{{roundvalue}}範例
You spent an average of {{round傳回:19.21}} minutes on our website each day.您每天平均在我們的網站上花費 19 分鐘。 - sha256
-
使用 SHA-256 密碼編譯安全性,對傳遞的字串進行雜湊處理。
用途
{{sha256 "string"}}範例
{{sha256 "傳回Hello World"}}a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e - sha512
-
使用 SHA-512 密碼編譯安全性,對傳遞的字串進行雜湊處理。
用途
{{sha512 "string"}}範例
{{sha512 "傳回Hello World"}}2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b - 減
-
傳回兩個數字的差值及浮點數。
用途
{{subtractarg1arg2}}範例
傳回{{subtract5 2.3}}2.7 - uuid
-
隨機產生標準 128 位元格式的 UUID。引數中不需要傳遞任何值。
用途
{{uuid}}範例
傳回{{uuid}}95f36680-152c-4052-99ec-cc3cdf7ca594
雖然在技術上不是協助程式,但內嵌部分是簡化包含重複字串之範本的處理常式,這更適合重複使用。如需詳細資訊,請參閱 https
用途
{{#* inline "inlineName"}}Content to reuse{{/inline}}
若要在其他地方引用內嵌部分的內容,請使用:
{{> inlineName}}
範例
下列範例會建立包含收件人名字的內嵌部分,如果可用,則將下列程式碼新增至範本的開頭:
{{#* inline "fullName"}}
{{User.UserAttributes.FirstName.[0]}} {{#if
User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}
{{/inline}}
建立 fullName 部分後,只要在部分名稱前加上一個 > (大於) 符號,後面空格,就可以將其放入範本的任一位置,如下例所示:{{>
fullName}}。
Hello {{> fullName}}
如果是 true,傳回使用者的名字和姓氏 – 例如蔡小英,您好。如果找不到姓氏,則傳回小英,您好。
處理常式包含除了此處記載的功能之外的其他功能。詳情請參閱 handlebarsjs.com
將變數與訊息範本協助程式搭配使用
Amazon Pinpoint 自訂屬性 (例如 User.UserAttributes.LastName) 儲存為清單,無論是單一項目或是多個項目。在需要字串的協助程式中傳遞清單時,必須指定屬性索引值和屬性名稱。此屬性索引值表示屬性清單中值的位置:.[0] 表示清單中的第一個項目,.[1] 表示第二個項目,.[2] 表示第三個項目,依此類推。假設您使用 upper 協助程式將 User.UserAttributes.LastName 的第一個 ([0]) 項目轉換為全部大寫。協助程式用法是 {{upper ,屬性的格式是 value}}User.UserAttributes.LastName。將 value 替換成屬性名稱和屬性索引值 ,如下所示:.[0]{{upper
User.UserAttributes.LastName.[0]}}。然後回應傳回清單中的 [0] 項目,格式是全部大寫。假設 [0] 的值是 Santos,回應傳回 SANTOS。
Amazon Pinpoint 自訂屬性名稱支援空格。若要擁有名為 的自訂屬性"Last Name",您必須將屬性格式化為 User.UserAttributes.[Last Name]。若要存取屬性索引清單中的第一個項目,格式為 User.UserAttributes.[Last Name].[0]。
自訂屬性名稱最多可包含 50 個字元。屬性值最多可包含 100 個字元。定義自訂屬性的名稱時,請避免使用以下字元:數字符號 (#)、冒號 (:)、問號 (?)、反斜線 (\) 和斜線 (/)。Amazon Pinpoint 主控台不能顯示包含這些字元的屬性名稱。此限制不適用於屬性值。
使用巢狀協助程式
您可以將多個訊息範本協助程式套疊在一起。以下範例說明如何格式化兩個協助程式:{{ first helper (second helper)}}。先處理第二個協助程式,再處理第一個協助程式。請記住,一律由第一個協助程式決定輸出。後一個協助程式必須套疊在前一個協助程式內,如下所示:{{ first helper (second helper (third helper)
)}}。
以下範例說明如何套疊兩個協助程式,將 JANE 變成 Jane: {{capitalizeFirst
(lower "。JANE")}}lower 先將 JANE 轉換為 jane。然後 capitalizeFirst 將 jane 轉換為 Jane。