终止支持通知: AWS 将于 2026 年 10 月 30 日终止对亚马逊 Pinpoint 的支持。2026 年 10 月 30 日之后,您将无法再访问亚马逊 Pinpoint 控制台或亚马逊 Pinpoint 资源(终端节点、区段、活动、旅程和分析)。有关更多信息,请参阅 Amazon Pinpoint 终止支持。注意: APIs 与短信相关、语音、移动推送、OTP 和电话号码验证不受此更改的影响,并受 AWS 最终用户消息的支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用消息模板助手
通过 Amazon Pinpoint 模板,客户可以基于 Handlebars.js 语言创建可重复使用的消息模板。助手提供各种功能,例如,将价格格式化为特定地区的货币,或者添加基于时区的地点,等等。助手可以使用特定的字符串或整数作为值,也可以使用特定的 Amazon Pinpoint 消息变量。
以下部分介绍助手的类别:
本部分介绍 Handlebars 提供的内置助手。有关完整列表,请参阅 handlebarsjs.com
-
each– 迭代列表。注意
最大列表大小为 15 个项目。
-
if– 评估语句。
- each
-
迭代列表。此助手仅使用一个块语句。您可以选择:
-
在请求中传递
@index以引用当前循环索引。 -
使用
this助手引用被迭代的当前元素。 -
使用
<li>标签以列表形式返回助手响应。
用法
{{#eachvalue}}位置
{{@index}}的值为{{this}}。{{else}}条件为假。
{{/each}}each的前面必须加上英镑符号 (#),并且块语句以结束语句{{/each}}结束。示例
在此示例中,
each用于返回用户喜爱的颜色列表。对于false,返回else语句。如果请求是这样:{{#each User.UserAttributes.FavoriteColors}}<li>{{this}}</li>{{else}}You have no favorite colors.{{/each}}返回-
red -
blue -
yellow
对于真语句。
-
- if
-
评估某件事是否为真,并基于评估结果返回响应。
用法
{{#ifvalue}}值未定义
{{else}}值未定义
{{/if}}if的前面必须加上英镑符号 (#),并且块语句以结束语句{{/if}}结束。示例
在此示例中,
if助手用于评估是否有用户的名字。如果找到名字,则返回在响应中传递用户名字的问候语。否则,else语句返回备选问候语。{{#if User.UserAttributes.FirstName.[0]}}Hello{{User.UserAttributes.FirstName.[0]}},{{else}}Hello,{{/if}}Hello, Jane如果if助手为真,则返回。
本部分介绍条件助手。
条件助手既可以在单行上使用,也可以在块语句中使用。无论您使用哪种助手方法,都可以自定义响应。您可以在单行语句和块语句中传递额外的条件助手。以下条件助手首先显示单行的用法,然后显示使用可选 else 子句的块语句的用法。有以下条件助手:
-
and– 比较所有传递的元素是否相等。 -
eq– 测试两个元素是否相等。 -
gt– 测试一个元素是否大于另一个元素。 -
gte– 测试一个元素是否大于或等于另一个元素。 -
if– 评估某件事是否为真。 -
lt– 测试一个元素是否小于另一个元素。 -
lte– 测试一个元素是否小于或等于另一个元素。 -
neq– 评估两个元素是否不相等。 -
not– 反转布尔运算的响应。 -
or– 比较自变量中的任何元素是否相等。
- 以及
-
比较参数中传递的所有 元素是否相等,然后根据结果返回响应。此助手可用于非布尔值。您必须为条件传递至少两个元素。
用法
-
{{andvalueavaluebvaluecvaluedyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#andvalueavalueb}}条件为真。
{{else}}条件为假。
{{/and}}and的前面必须加上英镑符号 (#),并且块语句以结束语句{{/and}}结束。
示例
在此示例中,
eq用在and块语句中,以确定为Location.City和Location.Country属性传递的两个字符串是否为真。如果两个条件相等,则返回一个真语句。如果其中任何一个属性为假,则返回else语句。{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}You live in Los Angeles and the US.{{else}}You don’t live in Los Angeles and the US.{{/and}} -
- eq
-
测试两个元素是否相等,或者一个元素的值是否等于传递的字符串。
用法
-
{{eqvalueavaluebyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#eqvalueavalueb}}条件为真。
{{else}}条件为假。
{{/eq}}eq的前面必须加上英镑符号 (#),并且块语句以结束语句{{/eq}}结束。
示例
在此示例中
eq,用于评估的值是否User.UserAttributes.FavoriteColors.[0]为Red。如果响应为true,则返回一个真语句。如果响应为false,则返回一个else语句。{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}Your favorite color is red.{{else}}You don't like red.{{/eq}} -
- gt
-
测试一个元素的值是否大于另一个元素的值。
用法
-
{{gtvalueavaluebyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#gtvalueavalueb}}条件为真。
{{else}}条件为假。
{{/gt}}gt的前面必须加上英镑符号 (#),并且块语句以结束语句{{/gt}}结束。
示例
在此示例中,帮助程序将
User.UserAttributes.UserAge.[0]属性的值与字符串进行比较17,以验证用户的年龄是否大于 17 岁。如果响应为true,则返回一个真语句。如果响应为false,则返回一个else语句。{{#gt User.UserAttributes.UserAge.[0] "17"}}You are old enough to rent a car.{{else}}You are not old enough to rent a car.{{/gt}} -
- gte
-
测试一个元素的值是否大于或等于另一个元素。
Usage-
{{gtevalueavaluebyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#gtevalueavalueb}}条件为真。
{{else}}条件为假。
{{/gte}}get的前面必须加上英镑符号 (#),并且块语句以结束语句{{/gte}}结束。
示例
在此示例中,帮助程序将
User.UserAttributes.UserAge.[0]属性与字符串进行比较18,以验证用户的年龄是否大于或等于 18 岁。如果响应为true,则返回一个真语句。如果响应为false,则返回一个else语句。{{#gte User.UserAttributes.UserAge.[0] "18"}}You are old enough to rent a car.{{else}}You are not old enough to rent a car.{{/gte}} -
- if
-
评估某件事是否为真,并基于评估结果返回响应。
用法
-
{{#ifvalue}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#if}}value条件为真。
{{else}}条件为假。
{{/if}}if的前面必须加上英镑符号 (#),并且块语句以结束语句{{/if}}结束。
示例
在此示例中, 助手用于评估是否有用户的名字。如果找到名字,则返回在响应中传递用户名字的问候语。否则,else 语句返回备选问候语。
{{#if User.UserAttributes.FirstName.[0]}}Hello{{User.UserAttributes.FirstName.[0]}},{{else}}Hello,{{/if}}Hello Jane,如果助手为真,则返回。 -
- lt
-
测试一个元素的值是否小于另一个元素的值。
用法
-
{{ltvalueavaluebyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#ltvalueavalueb}}条件为真。
{{else}}条件为假。
{{/lt}}lt的前面必须加上英镑符号 (#),并且块语句以结束语句{{/lt}}结束。
示例
在此示例中,帮助程序将
User.UserAttributes.UserAge.[0]属性与字符串进行比较18,以验证用户的年龄是否小于 18 岁。如果响应为true,则返回一个真语句。如果响应为false,则返回一个else语句。{{#lt User.UserAttributes.UserAge.[0] "18"}}You are not old enough to rent a car.{{else}}You are old enough to rent a car.{{/lt}} -
- lte
-
测试一个元素的值是否小于或等于另一个元素的值。
用法
-
{{ltevalueavaluebyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#ltevalueavalueb}}条件为真。
{{else}}条件为假。
{{/lte}}lte的前面必须加上英镑符号 (#),并且块语句以结束语句{{/lte}}结束。
示例
在此区块语句中,助手将
User.UserAttributes.UserAge.[0]属性与字符串进行比较17,以验证用户的年龄是否等于 17 岁或更小。如果响应为true,则返回一个真语句。如果响应为false,则返回一个else语句。{{#lte User.UserAttributes.Age.[0] "17"}}You are not old enough to rent a car.{{else}}You are old enough to rent a car.{{/lte}} -
- neq
-
测试两个元素是否不 相等。
用法
-
{{neqvalueavaluebyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#neqvalueavalueb}}条件为真。
{{else}}条件为假。
{{/neq}}neq的前面必须加上英镑符号 (#),并且块语句以结束语句{{/neq}}结束。
示例
在此块语句中,对照字符串
检查RedUser.UserAttributes.FavoriteColors.[0]属性。如果响应为true,则返回一个真语句。如果响应为false,则返回一个else语句。{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}You do not like red.{{else}}You like red.{{/neq}} -
- not
-
反转布尔运算的响应,这样,如果
not是正向比较,则返回一个true语句。如果响应为假,则返回一个 else 语句。用法
-
{{notvalueyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。 -
{{#not}}value条件为真。
{{else}}条件为假。
{{/not}}not的前面必须加上英镑符号 (#),并且块语句以结束语句{{/not}}结束。
示例
在此块语句中
red,使用eq帮助程序对照字符串检查User.UerAttributes.FavoriteColors.[0]属性。然后,not助手返回eq助手的相反值。如果响应返回除之外的任何颜色red,则返回true一条语句。如果响应返回red,则返回一条表示错误else语句的语句。{{#not (eq User.UserAttributes.Favorite.Colors.[0] "red")}}You do not like red.{{else}}You like red.{{/not}}示例
在本示例中,
{{not (eq User.UserAttributes.FavoriteColors.[0] "red")}}如果
User.UserAttributes.FavoriteColors.[0]是,则返回假red。 -
- or
-
比较参数中是否有任何 元素相等,然后根据结果返回响应。此助手可用于非布尔值。
用法
-
{{orvalueavaluebvaluecvaluedyes='y' no='n'}}根据条件,可以将
y和n替换为其他值no,例如yes和,或任何其他要返回的字符串。您必须为条件传递至少两个元素。 -
{{#orvalueavalueb}}条件为真。
{{else}}条件为假。
{{/or}}or的前面必须加上英镑符号 (#),并且块语句以结束语句{{/or}}结束。
示例
在此
or块语句中,还使用eq助手比较了Location.City属性的两个字符串。如果其中任何一个属性为true,则返回真语句。如果有一个或多个响应为false,则返回一个else语句。{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}You live on the West Coast of the United States.{{else}}You do not live on the West Coast of the United States.{{/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
-
如果值超过指定长度,则截断该值。长度计数中包含空格。响应中显示省略号以表示被截断的值。省略号计入响应中被截断的值。如果您的表格很大但空间很小,那么这种类型的助手非常有用。截断单元格中的值可以使表格的外观更加统一。
用法
{{abbreviate,valueX}}X替换为表示要保留的字符数的数值。不支持负数。示例
在此示例中,
abbreviate用于将User.UserAttributes.LastName.[0]截断为六 (6) 个字符。响应包括省略号,这些点计入六个字符的总数中。{{abbreviate返回User.UserAttributes.LastName.[0]6}}Ale...Alejandroif 是的值[0]。 - capitalize
-
将空格之间的每个单词都大写。
用法
{{capitalizevalue}}示例
在此示例中,将首字母大小应用于
Attributes.description.[0]条目的每个单词。{{capitalizeAttributes.description.[0]}}如果
Attributes.description.[0]返回My First Post,如果的值Attributes.description.[0]为my first post。 - capitalizeFirst
-
将值中的第一个字符大写。
用法
{{capitalizeFirstvalue}}示例
在此示例中,将大写应用于
Attributes.description.[0]条目的第一个单词的第一个字符。{{capitalizeFirst返回Attributes.description.[0]}}My first post,如果的值为Attributes.description.[0]my first post。示例
- center
-
在给定宽度(通过指定数值)的字段中将值居中。您可以选择传递字符来填充,也可以留空。如果未传递任何字符,则使用空格。
用法
{{center,valuesize=X[pad=" "}}X替换为数值。如果保留
pad为空白,则在响应中使用空格作为填充。如果您传递一个字符,则该字符将显示在填充的每个空格中。不支持负数。示例
在此示例中,的
Location.City值居中,大小为19。{{center返回Location.Citysize=19}}" Los Angeles "如果Location.City是Los Angeles。请注意,示例输出中显示的引号仅为了强调。 - cut
-
从字符串中删除指定值。
用法
{{cut,将引号参数中的空格替换为要剪切的值。如果未传递任何参数值,则使用空格。value[" "]}}示例
此示例
e从Location.City属性中删除字母。{{cut返回Location.City"e"}}Los Angls如果[Location.City是Los Angeles。 - dateFormat
-
为任何响应中的日期设置默认日期样式。有关时区的列表 IDs,请参阅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。示例
在此示例中
[0],将使用基于America/Los_Angeles时区的full日期格式向用户发送一条消息。User.UserAttributes.StartDate.[0]09/19/2020We can meet with you any time on{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.返回We can meet with you any time on Tuesday, September 19, 2020. -
- inflect
-
根据计数值返回单数或复数字符串。
用法
{{inflectcountsingularplural[includeCount=false]}}-
输入要在参数中传递的字符串的单数和复数形式。
-
如果
includeCount设置为false,则响应中不返回计数。如果设置为true,则响应中包括count。
示例
以下示例显示了在有和没有
includeCount的情况下,针对购买苹果的表述变化。Thank you for your purchase of {{inflect返回:3appleapplesincludeCount=false}}.Thank you for your purchase of apples.如果
includeCount设置为true,则响应为Thank you for your purchase of 3 apples. -
- join
-
连接数组、迭代器或可迭代对象。响应会返回一个列表,列表中的每个值都由您在
join中传递的字符连接在一起。例如,您可能使用逗号 (,) 分隔值。此助手中的值必须是没有属性位置索引的列表。例如,这可能是Attributes.custom_attribute。用法
{{joinvalue" // " [prefix=""] [suffix=""]}}示例
在此示例中,返回一个颜色列表,列表由逗号和空格 (
", ") 分隔:{{join返回Attributes.favorite_colors","}}blue, red, greenAttributes.favorite_colorsif 是清单blue,red,green。 - ljust
-
将值对齐到左边距,并在右侧添加空格,使值的长度匹配数值。不支持负数。
您可以选择传递要为
pad显示的字符,也可以留空。如果将pad值留空,则默认值为空格。用法
{{ljust,其中valuesize=X[pad=" "]}}X是该值的总长度,包括空格。示例
在此示例中,将左对齐值应用
15于 Location.City。{{ljust返回Location.Citysize=15}}"Los Angeles "如果的值Location.City为Los Angeles。请注意,示例输出中显示的引号仅为了强调。 - lower
-
将一个值全部转换为小写。
用法
{{lowervalue}}示例
在此示例中,
User.UserAttributes.LastName.[0]的[0]条目更改为小写。{{lower返回User.UserAttributes.LastName.[0]}}santosSantosif 是的值[0]。 - now
-
根据传递的时区 ID 显示当前日期。有关时区的列表 IDs,请参阅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。示例
在此示例中,Los Angeles 的当前日期以
medium格式返回。{{now "medium" tz=返回America/Los_Angeles}}Sept 19, 2020. -
- ordinalize
-
将参数中传递的数值序数词化。例如,按
1顺序排序为1st2。2nd仅支持数值。用法
{{ordinalize [number]}}示例
在此示例中,对
User.UserAttributes.UserAge的[0]条目序数词化并返回,同时伴随一条消息。Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!返回22按顺序排序为。22ndCongratulations on your 22nd birthday! - 替换
-
将一个字符串替换为另一个字符串。字符串或数值必须是文字。不支持通配符。
用法
{{replacestringToReplacereplacementValue}}示例
在此示例中,下划线 (_) 取代了空格。
{{replace返回Location.City" " "_"}}Los_Angeles如果Location.City是Los Angeles。 - rjust
-
将值对齐到右边距,并在左侧添加空格,使值的长度匹配数值。不支持负数。
您可以选择传递要为
pad显示的字符,也可以留空。如果将pad值留空,则默认值为空格。用法
{{rjust,其中valuesize=X[pad=" "]}}X是该值的总长度,包括空格。示例
在此示例中,将右对齐
15值应用于该Location.City属性。{{rjust返回Location.Citysize=15}}" Los Angeles". 如果Location.City是Los Angeles。请注意,输出中显示的引号仅为了强调。 - slugify
-
将传递的值转换为小写,删除非单词字符(字母数字和下划线),将空格转换为连字符,并删除所有前导或尾随空格。
用法
{{slugifyvalue}}示例
在此示例中,对
Location.City属性执行 slugify。{{slugify返回Location.City}}los-angeles如果Location.City是Los Angeles。 - stripTags
-
从一个值中除去 [X]HTML 标签。
用法
{{stripTagsvalue}}示例
在此示例中,用户的 HTML 标记。 UserAttributes.interest. [0] 已删除。
{{stripTags返回User.UserAttributes.interests.[0]}}Art,如果User.UserAttributes.interests.[0]是<h1>Art</h1>。 - substring
-
返回一个新字符串作为传递值的子字符串。长度和位置由
startOffset和endOffset参数决定,这两个参数必须为整数。不支持负数。如果未传递endOffset,则子字符串使用字符串的原始结尾值。用法
{{substringvaluestartOffset[endOffset]}}示例
在此示例中,offset 为 4,endOffset 为 9,应用于 Location.City 属性。
{{substring返回Location.City 4 9}}如果洛杉矶是的价值AngelLocation.City是Los Angeles。 - upper
-
将传递的值转换为大写。
用法
{{uppervalue}}示例
在此示例中,
User.UserAttributes.LastName属性的[0]条目全部转换为大写字母。{{upper User.UserAttributes.LastName.[0]}}返回ROE如果User.UserAttributes.LastName.[0]值是Roe。 - yesno
-
将
true、false和NULL替换为Yes、No和Maybe。用法
{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}示例
在此示例中,
IsUserSubscribed属性返回用户是否订阅了特定列表。{{yesno Attributes.IsUserSubscribed}}返回yes如果Attributes.IsUserSubscribed是true。
本部分介绍数学和编码助手。
-
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 - ceiling
-
将小数向上取到最接近传递值的最大整数。
用法
{{ceilingvalue}}示例
{{ceiling返回5.23}}6 - decode64
-
将 Base64 编码的值解码为字符串。
用法
{{decode64 "string"}}示例
{{decode64 "返回SGVsbG8gd29ybGQ="}}Hello World - divide
-
返回两个数的商,包括浮点。
用法
{{dividearg1arg2}}示例
{{divide返回5 2.3}}2.17391304 - encode64
-
使用 Base64 对参数中传递的字符串进行编码。
用法
{{encode64 "string"}}示例
{{encode64 "Hello World"}}SGVsbG8gd29ybGQ= - floor
-
将小数向下取到最接近传递值的最小整数。
用法
{{floorvalue}}示例
{{floor返回5.23}}5 - md5
-
使用 MD5 算法对传递的字符串进行哈希处理。
用法
{{md5 "string"}}示例
{{md5 "Hello World"}}3e25960a79dbc69b674cd4ec67a72c62 - modulo
-
返回两个浮点数取模的余数。
用法
{{moduloarg1arg2}}示例
{{modulo返回7 2}}1 - multiply
-
返回两个可带浮点的数的乘积。
用法
{{multiplyarg1arg2}}示例
{{multiply返回5 2.3}}11.5 - round
-
将小数位向上或向下舍入为最接近的整数。
用法
{{roundvalue}}示例
You spent an average of {{round返回:19.21}} minutes on our website each day.You spent an average of 19 minutes on our website each day. - sha256
-
使用 SHA-256 加密安全性对传递的字符串进行哈希处理。
用法
{{sha256 "string"}}示例
{{sha256 "返回Hello World"}}a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e - sha512
-
使用 SHA-512 加密安全性对传递的字符串进行哈希处理。
用法
{{sha512 "string"}}示例
{{sha512 "返回Hello World"}}2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b - subtract
-
返回两个可带浮点的数的差。
用法
{{subtractarg1arg2}}示例
返回{{subtract5 2.3}}2.7 - uuid
-
随机生成一个标准 128 位格式的 UUID。无需在参数中传递任何值。
用法
{{uuid}}示例
返回{{uuid}}95f36680-152c-4052-99ec-cc3cdf7ca594
虽然从技术上说 inline partial 不是助手,但它们是 Handlebars 简化包含重复字符串的模板的方法,这更便于重复使用。有关更多信息,请参阅 handlebarsjs.com
用法
{{#* inline "inlineName"}}Content to reuse{{/inline}}
要在其他地方引用 inline partial 的内容,请使用:
{{> inlineName}}
示例
下面的示例通过将以下代码添加到模板的开头,来创建一个 inline partial,其中包括收件人的名字和姓氏(如果可用):
{{#* inline "fullName"}}
{{User.UserAttributes.FirstName.[0]}} {{#if
User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}
{{/inline}}
创建 fullName partial 后,您可以通过在 partial 的名称前加上一个 >(大于号),后面跟一个空格,将其包含在模板中的任何位置,如下例所示:{{>
fullName}}。
Hello {{> fullName}}
如果为 true,则返回用户的名字和姓氏,例如Hello
Jane Doe。否则,如果找不到姓氏,Hello
Jane则返回。
除了这里介绍的特征以外,Handlebars 还包含许多其他特征。有关更多信息,请访问 handlebarsjs.com
将变量与消息模板助手结合使用
Amazon Pinpoint 自定义属性(例如 User.UserAttributes.LastName)以列表形式存储,无论列表有一个项目还是多个项目。在期望字符串的助手中传递列表时,必须指定属性索引值和属性名称。此属性索引值指示值在属性列表中的位置:.[0] 是列表中的第一项,.[1] 是第二项,.[2] 是第 3 项,以此类推。例如,假设您正在使用 upper 助手将 User.UserAttributes.LastName 的第一项 ([0]) 转换为全部大写。助手用法为 {{upper ,属性的格式为 value}}User.UserAttributes.LastName。按如下方式value替换为属性名称和属性索引值:.[0]{{upper
User.UserAttributes.LastName.[0]}}。然后,响应会返回列表中的 [0] 项,格式全部为大写。例如,如果的值为Santos,[0]则返回响应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。