サポート終了通知: 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 が提供する組み込みヘルパーについて説明します。完全な一覧については、「handlebarsjs.com
-
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}}が返す-
赤色 -
青色 -
黄色
true 文のために。
-
- if
-
true であるかどうかを評価し、その評価に基づいた応答を返します。
使用方法
{{#ifvalue}}値は未定義ではない
{{else}}値は未定義である
{{/if}}ifは、ブロック文の前にポンド記号(#)をつけ、最後に{{/if}}を閉じなければなりません。例
この例では、
ifヘルパーを使用して、ユーザーのファーストネームがあるかどうかを評価します。名前が見つかった場合は、ユーザーのファーストネームを渡す挨拶文がレスポンスとして返されます。そうでない場合、else文は、代替えの挨拶文を返します。{{#if User.UserAttributes.FirstName.[0]}}Hello{{User.UserAttributes.FirstName.[0]}},{{else}}ようこそ{{/if}}ifヘルパーが true のとき、Hello, Janeを返します。
このセクションでは条件付きヘルパーについて説明します。
条件付きヘルパーは、1 行またはブロック文で使用できます。どのヘルパーメソッドを使用しても、レスポンスをカスタマイズすることができます。一行文とブロック文の両方で、追加の条件付きヘルパーを渡すことができます。以下の条件付きヘルパーは、まず 1 行で使用し、次にオプションの else 句を使用したブロック文での使用法を示しています。条件付きヘルパーは次のとおりです。
-
and— 渡されたすべての要素が等しいかどうか比較します。 -
eq— 2 つの要素が等しいかどうかをテストします。 -
gt— ある要素が別の要素よりも大きいかどうかをテストします。 -
gte— ある要素が別の要素よりも大きいかどうかまたは等しいかどうかをテストします。 -
if— ある事象が true かどうかを評価します。 -
lt— ある要素が別の要素よりも小さいかどうかをテストします。 -
lte— ある要素が別の要素よりも小さいかどうかまたは等しいかどうかをテストします。 -
neq— 2 つの要素が等しいかどうかを評価します。 -
not— ブール演算の応答を反転します。 -
or— 引数内の要素のいずれかが等しいかどうかを比較します。
- and
-
引数で渡されたすべての要素が等しいかどうかを比較し、その結果に基 づいて応答を返す。このヘルパーは、ブール値以外の値に対して使用することができます。条件として、少なくとも 2 つの要素を渡す必要があります。
使用方法
-
{{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
-
2 つの要素が等しいかどうか、または、1 つの要素の値が、渡された文字列と等しいかどうかをテストします。
使用方法
-
{{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}} -
- if
-
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
-
2 つの要素が等しくないかどうかをテストします。
使用方法
-
{{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
-
ブール演算の応答を反転させ、
notが正比較の場合、true文を返します。応答が false の場合、else 文が返されます。使用方法
-
{{notvalueyes='y' no='n'}}yとnは、条件によって、yesやnoなど他の値や、戻り値にしたい文字列に置き換えることができます。 -
{{#not}}value条件が true です。
{{else}}条件が false です。
{{/not}}notは、ブロック文の前にポンド記号(#)をつけ、最後に{{/not}}を閉じなければなりません。
例
このブロック文では、
User.UerAttributes.FavoriteColors.[0]属性と文字列の赤色をeqヘルパーで照合しています。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 を返します。 -
- or
-
引数の要素のいずれかが等しいかどうかを比較し、その結果に基づいて応答を返します。このヘルパーは、ブール値以外の値に対して使用することができます。
使用方法
-
{{orvalueavaluebvaluecvaluedyes='y' no='n'}}yとnは、条件によって、yesやnoなど他の値や、戻り値にしたい文字列に置き換えることができます。条件として、少なくとも 2 つの要素を渡す必要があります。 -
{{#orvalueavalueb}}条件が true です。
{{else}}条件が false です。
{{/or}}orは、ブロック文の前にポンド記号(#)をつけ、最後に{{/or}}を閉じなければなりません。
例
加えて、この
orブロック文では、Location.City属性の 2 つの文字列をeqヘルパーを使って比較します。いずれかの属性がtrueの場合、true 文が返されます。1 つ以上の回答が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桁に切り捨てます。応答には省略記号が含まれ、そのドットには 6 文字の合計にカウントされます。{{abbreviateが返すUser.UserAttributes.LastName.[0]6}}Ale...Alejandroが[0]の値の場合。 - 大文字にする
-
空白の間にある各単語を大文字にします。
使用方法
{{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で、引用符パラメータ内のスペースを切り取る値で置き換えます。パラメータ値が渡されない場合は、空白が使用されます。value[" "]}}例
この例では、
Location.City属性から文字eを削除します。{{cutが返すLocation.City"e"}}Los Angls、[Location.CityがLos Angelesの場合。 - 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日(火)はいつでもお会いできます。 -
- インフレクト
-
カウントの値に応じた単数または複数の文字列を返します。
使用方法
{{inflectcountsingularplural[includeCount=false]}}-
引数に渡す文字列の単数形および複数形を入力します。
-
includeCountをfalseに設定した場合、応答ではカウントを返しません。trueに 設定すると、countが応答に含まれます。
例
次の例では、リンゴを購入する際の編曲を、
includeCount有るか無いかで表示します。Thank you for your purchase of {{inflectを返す。3appleapplesincludeCount=false}}.りんごをご購入いただきありがとうございました。includeCountがtrueに設定されている場合、応答はりんごを 3 つご購入いただきありがとうございました。 -
- 結合
-
配列、イテレーター、または反復可能なオブジェクトを結合します。応答はリストを返し、リストの各値は
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}}「Los Angeles 」、Location.Cityの値がLos Angelesの場合。出力例に表示される引用符は、強調のためにのみ提供されます。 - lower
-
値を小文字に変換します。
使用方法
{{lowervalue}}例
この例では、
User.UserAttributes.LastName.[0]の[0]エントリーを小文字に変更します。{{lowerが返すUser.UserAttributes.LastName.[0]}}santos、Santosが[0]の値の場合。 - now
-
渡されたタイムゾーン 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を使用します。例
この例では、Los Angeles の現在の日付を
mediumの形式で返します。{{now "medium" tz=が返すAmerica/Los_Angeles}}Sept 19, 2020。 -
- 順序付け
-
引数に渡される数値を順序付けします。例えば、
1は1st、2は2ndというように順序付けします。数値のみサポートします。使用方法
{{ordinalize [number]}}例
この例では、
User.UserAttributes.UserAgeの[0]エントリーを順序付けし、メッセージと一緒に返します。Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!は22を22ndとして順序付けした値を返します。22歳の誕生日おめでとうございます! - replace
-
ある文字列を別の文字列に置き換えます。文字列または数値はリテラルでなければなりません。ワイルドカード文字はサポートされていません。
使用方法
{{replacestringToReplacereplacementValue}}例
この例では、アンダースコア (_) を空白に置き換えます。
{{replaceが返すLocation.City" " "_"}}Los_Angeles、Location.CityがLos Angelesの場合。 - rjust
-
値を右余白に揃え、値の長さが数値と一致するように、左に余白を追加します。負の数は対応していません。
オプションで
padに表示する文字を渡すか、フィールドを空白にできます。padの値を空白にした場合、デフォルト値は空白になります。使用方法
{{rjust、valuesize=X[pad=" "]}}Xは空白を含む値の全長です。例
この例では、
Location.City属性を15で右揃えします。{{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}}例
この例では、user.userAttributes.interest.[0] の HTML タグを削除します。
{{stripTagsが返すUser.UserAttributes.interests.[0]}}Art、User.UserAttributes.interests.[0]が<h1>Art</h1>の場合。 - substring
-
新しい文字列を、渡された値の部分文字列として返します。長さと位置は整数値の
startOffsetとendOffsetのパラメータで決定します。負の数は対応していません。endOffsetが渡されない場合、部分文字列は元の文字列の最後の文字を使用します。使用方法
{{substringvaluestartOffset[endOffset]}}例
この例では、Location.City 属性にオフセットを 4、EndOFFset を 9 に設定します。
{{substringが返すLocation.City 4 9}}、Los Angeles が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— 2 つの数の加算結果を返します。 -
ceiling— 最も近い整数に切り上げます。 -
decode64– base64 でエンコードされた値を文字列にデコードします。 -
divide— 2 つの数の除算結果を返します。 -
encode64— base64 を使用して文字列をエンコードします。 -
floor— 最も近い整数に切り下げます。 -
md5— MD5 アルゴリズムを使用して、渡された文字列をハッシュ化します。 -
modulo— 浮動小数点を使用して 2 つの数値の余りを返します。 -
multiply— 2 つの数の乗算結果を返します。 -
round— 10 進数を四捨五入して、最も近い整数にします。 -
sha256— SHA-256 を使用して、渡された文字列をハッシュ化します。 -
sha512— SHA-512 を使用して、渡された文字列をハッシュ化します。 -
subtract— 2 つの数値の減算結果を返します。 -
uuid— 128 ビット形式の UUID をランダムで生成します。
- add
-
浮動小数点数とともに 2 つの数値の加算結果を返します。
使用方法
{{addarg1arg2}}例
{{addが返す5 2.3}}7.3 - ceiling
-
渡された整数値を最も近い整数に切り上げます。
使用方法
{{ceilingvalue}}例
{{ceilingが返す5.23}}6 - decode64
-
base64 でエンコードされた値を文字列にデコードします。
使用方法
{{decode64 "string"}}例
{{decode64 "が返すSGVsbG8gd29ybGQ="}}Hello World - 除算
-
浮動小数点を含む 2 つの数値の除算結果を返します。
使用方法
{{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 - モジュロ
-
浮動小数点を使用して 2 つの数値の余りを返します。
使用方法
{{moduloarg1arg2}}例
{{moduloが返す7 2}}1 - multiply
-
浮動小数点数とともに 2 つの数値の乗算結果を返します。
使用方法
{{multiplyarg1arg2}}例
{{multiplyが返す5 2.3}}11.5 - round
-
小数点以下を四捨五入して、最も近い整数にします。
使用方法
{{roundvalue}}例
You spent an average of {{roundを返す。19.21}} minutes on our website each day.毎日平均 19 分をウェブサイトを閲覧しています。 - sha256
-
SHA-512 暗号化セキュリティを使用して、渡された文字列をハッシュ化します。
使用方法
{{sha256 "string"}}例
{{sha256 "が返すHello World"}}a591a6d40bf420404a011733cfb7b190d62c65bf0bda32b57b277d9ad9d9f146e - sha512
-
SHA-512 暗号化セキュリティを使用して、渡された文字列をハッシュ化します。
使用方法
{{sha512 "string"}}例
{{sha512 "が返すHello World"}}2c74fd17edafd80e8447b0d467b0d461e243b7eb74d2149a0ab1b74d2149a0ab1b9246f30382f27e857e85719ee67cbda0da8f51671064615d6d6b459b - 減算
-
浮動小数点数とともに 2 つの数値の減算結果を返します。
使用方法
{{subtractarg1arg2}}例
が返す{{subtract5 2.3}}2.7 - uuid
-
標準 128 ビット形式の UUID をランダムで生成します。引数に値を渡す必要はありません。
使用方法
{{uuid}}例
が返す{{uuid}}95f36680-152c-4052-99ec-cc3cdf7ca594
技術的にはヘルパーではありませんが、インラインパーシャルは、繰り返される文字列を含むテンプレートを効率化するための再利用に適した Handlebars の方法です。詳細については、「handlebarsjs.com
使用方法
{{#* 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 の場合、ユーザーの名前と名字を返します。例: Hello Jane Doe。それ以外の場合、苗字が見つからなければ、Hello Jane が返されます。
ここに記載されている機能の他にも、Handlebars はさまざまな機能を提供します。詳細については、「handlebarsjs.com
メッセージテンプレートヘルパーで変数を使用する
User.UserAttributes.LastName などの Amazon Pinpoint カスタム属性は、1 つの項目でも、複数の項目でも、リストとして保存されます。文字列の引数が必要なヘルパーでリストを渡す場合、属性名と一緒に属性インデックス値も指定する必要があります。この属性インデックス値は、属性リストからの値の位置を示します。.[0] はリストの最初のエントリ、.[1] は 2 番目のエントリ、.[2]は 3 番目のエントリ、のようになります。例えば、upper ヘルパーを使って、User.UserAttributes.LastName の最初のエントリー ([0]) をすべて大文字に変換することにします。ヘルパーの使い方は {{upper で、属性の書式は value}}User.UserAttributes.LastName です。{{upper
User.UserAttributes.LastName.[0]}} に従い、値を属性名と属性インデックス値 に置き換えます。その後、応答はリストの中から .[0][0] の項目を、すべて大文字形式で返します。例えば、[0] の値が Santos の場合、応答は SANTOS を返します。
Amazon Pinpoint カスタム属性名はスペースをサポートします。"Last Name" というカスタム属性を使用するには、属性を User.UserAttributes.[Last Name] にフォーマットする必要があります。属性インデックスリストの最初のエントリにアクセスするためのフォーマットは、User.UserAttributes.[Last
Name].[0] です。
カスタム属性名には、最大 50 文字を含めることができます。属性値には、最大 100 文字を含めることができます。カスタム属性の名前を定義するときは、番号記号 (#)、コロン (:)、疑問符 (?)、バックスラッシュ (\)、スラッシュ (/) は使用しないでください。Amazon Pinpoint コンソールでは、これらの文字を含む属性名を表示できません。この制限は、属性値には適用されません。
ネストされたヘルパーを使用する
複数のメッセージテンプレートヘルパーを互いにネストすることができます。次に、2 つの {{ first helper (second helper)}} ヘルパーをフォーマットする例を示します。2 番目のヘルパーが最初に処理され、その後に 1 番目のヘルパーが処理されます。最初のヘルパーが常に出力を決定することを留意してください。後続のヘルパーは、{{ first helper (second helper (third helper)
)}} のように、最初のヘルパー内にネストする必要があります。
次の例 {{capitalizeFirst
(lower " は、JANE")}}JANE を Jane に変更するために 2 つのヘルパーをネストさせる方法を示しています。lower はまず JANE を jane に変換します。その後、capitalizeFirst は jane を Jane に変換します。