メッセージテンプレートヘルパーを使用する - Amazon Pinpoint

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

メッセージテンプレートヘルパーを使用する

Amazon Pinpoint テンプレートを使用すると、お客様は Handlebars.js 言語に基づいて再利用可能なメッセージテンプレートを作成できます。ヘルパーは、料金を特定の地域の通貨にフォーマットしたり、タイムゾーンに基づいたロケーションを追加するなど、さまざまな機能を提供します。ヘルパーは、値または特定の Amazon Pinpoint メッセージ変数に、文字列や整数を使用できます。

これらは、次のセクションで説明するヘルパーのカテゴリです。

このセクションでは、Handlebars が提供する組み込みヘルパーについて説明します。完全なリストについては、handlebarsjs.com の組み込みヘルパーを参照してください。組み込みヘルパーは次のとおりです。

  • each — リストを反復処理します。

    注記

    リストの最大サイズは 15 項目です。

  • if — 文を評価します。

each

リストを反復処理します。このヘルパーはブロック文のみを使用します。オプションで、次の操作も行えます。

  • 現在のループインデックスを参照するために、リクエストで @index を渡します。

  • this ヘルパーを使用して、反復処理されている現在の要素を参照します。

  • <li> タグを使用して、ヘルパー応答をリストで返します。

使用方法

{{#each value}}

{{@index}} ポジションでの値は {{this}} です。

{{else}}

条件が false です。

{{/each}}

each は、ブロック文の前にポンド記号(#)をつけ、最後に {{/each}} を閉じなければなりません。

この例では、ユーザーの好きな色のリストを返すために each を使用しています。false の場合、else 文が返されます。リクエストが次の場合:

{{#each User.UserAttributes.FavoriteColors}}

<li>{{this}}</li>

{{else}}

You have no favorite colors.

{{/each}} が返す

  • red

  • blue

  • yellow

true 文のために。

if

true であるかどうかを評価し、その評価に基づいた応答を返します。

使用方法

{{#if value}}

値は未定義ではありません

{{else}}

値は未定義である

{{/if}}

if は、ブロック文の前にポンド記号(#)をつけ、最後に {{/if}} を閉じなければなりません。

この例では、if ヘルパーを使用して、ユーザーのファーストネームがあるかどうかを評価します。名前が見つかった場合は、ユーザーのファーストネームを渡す挨拶文がレスポンスとして返されます。そうでない場合、else 文は、代替えの挨拶文を返します。

{{#if User.UserAttributes.FirstName.[0]}}

Hello {{User.UserAttributes.FirstName.[0]}},

{{else}}

Hello,

{{/if}}

が返す Hello, Jane if ヘルパーが true の場合。

このセクションでは条件付きヘルパーについて説明します。

条件付きヘルパーは、1 行またはブロック文で使用できます。どのヘルパーメソッドを使用しても、レスポンスをカスタマイズすることができます。一行文とブロック文の両方で、追加の条件付きヘルパーを渡すことができます。以下の条件付きヘルパーは、まず 1 行で使用し、次にオプションの else 句を使用したブロック文での使用法を示しています。条件付きヘルパーは次のとおりです。

  • and – 渡されたすべての要素が等しいかどうかを比較します。

  • eq — 2 つの要素が等しいかどうかをテストします。

  • gt — ある要素が別の要素よりも大きいかどうかをテストします。

  • gte — ある要素が別の要素よりも大きいかどうかまたは等しいかどうかをテストします。

  • if – 何かが本当かどうかを評価します。

  • lt — ある要素が別の要素よりも小さいかどうかをテストします。

  • lte — ある要素が別の要素よりも小さいかどうかまたは等しいかどうかをテストします。

  • neq — 2 つの要素が等しいかどうかを評価します。

  • not – ブール演算のレスポンスを反転します。

  • or — 引数内の要素のいずれかが等しいかどうかを比較します。

また、

引数で渡されたすべての要素が等しいかどうかを比較し、その結果に基 づいて応答を返す。このヘルパーは、ブール値以外の値に対して使用することができます。条件として、少なくとも 2 つの要素を渡す必要があります。

使用方法

  • {{and valuea valueb valuec valued yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#and valuea valueb}}

    条件が 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")}}

You live in Los Angeles and the US.

{{else}}

You don’t live in Los Angeles and the US.

{{/and}}

eq

2 つの要素が等しいかどうか、または、1 つの要素の値が、渡された文字列と等しいかどうかをテストします。

使用方法

  • {{eq valuea valueb yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#eq valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/eq}}

    eq は、ブロック文の前にポンド記号(#)をつけ、最後に {{/eq}} を閉じなければなりません。

この例では、 eq の値が User.UserAttributes.FavoriteColors.[0] であるかどうかを評価するために が使用されます。Red。 レスポンスが の場合true、true ステートメントが返されます。応答が false の場合は、else 文が返されます。

{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}

Your favorite color is red.

{{else}}

You don't like red.

{{/eq}}

gt

ある要素の値が別の要素の値よりも大きいかどうかをテストします。

使用方法

  • {{gt valuea valueb yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#gt valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/gt}}

    gt は、ブロック文の前にポンド記号(#)をつけ、最後に {{/gt}} を閉じなければなりません。

この例では、ヘルパーは User.UserAttributes.UserAge.[0] 属性の値を文字列と比較します。17。ユーザーの年齢が 17 を超えているかどうかを確認します。応答が true の場合は、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

  • {{gte valuea valueb yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#gte valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/gte}}

    get は、ブロック文の前にポンド記号(#)をつけ、最後に {{/gte}} を閉じなければなりません。

この例では、ヘルパーは User.UserAttributes.UserAge.[0] 属性を文字列と比較します。18。ユーザーの年齢が 18 以上かどうかを検証します。応答が true の場合は、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

true であるかどうかを評価し、その評価に基づいた応答を返します。

使用方法

  • {{#if value}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#if value}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/if}}

    if は、ブロック文の前にポンド記号(#)をつけ、最後に {{/if}} を閉じなければなりません。

この例では、 ヘルパーを使用して、ユーザーのファーストネームがあるかどうかを評価します。名前が見つかった場合は、ユーザーのファーストネームを渡す挨拶文がレスポンスとして返されます。それ以外の場合は、else 文で代替の挨拶文を返します。

{{#if User.UserAttributes.FirstName.[0]}}

Hello {{User.UserAttributes.FirstName.[0]}},

{{else}}

Hello,

{{/if}}

が返す Hello Jane, ヘルパーが true の場合。

lt

ある要素の値が別の要素の値よりも小さいかどうかをテストします。

使用方法

  • {{lt valuea valueb yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#lt valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/lt}}

    lt は、ブロック文の前にポンド記号(#)をつけ、最後に {{/lt}} を閉じなければなりません。

この例では、ヘルパーは User.UserAttributes.UserAge.[0] 属性を文字列と比較します。18 。ユーザーの年齢が 18 未満であるかどうかを検証します。応答が true の場合は、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

要素の値が別の要素の値より小さいかどうかをテストします。

使用方法

  • {{lte valuea valueb yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#lte valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/lte}}

    lte は、ブロック文の前にポンド記号(#)をつけ、最後に {{/lte}} を閉じなければなりません。

このブロックステートメントでは、ヘルパーは User.UserAttributes.UserAge.[0] 属性を文字列と比較します。17。ユーザーの年齢が 17 以下であるかどうかを検証します。応答が true の場合は、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

2 つの要素が等しくないかどうかをテストします。

使用方法

  • {{neq valuea valueb yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#neq valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/neq}}

    neq は、ブロック文の前にポンド記号(#)をつけ、最後に {{/neq}} を閉じなければなりません。

このブロックステートメントでは、 User.UserAttributes.FavoriteColors.[0] 属性は文字列 に対してチェックされますRed。応答が true の場合は、true 文が返されます。応答が false の場合は、else 文が返されます。

{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}

You do not like red.

{{else}}

You like red.

{{/neq}}

not

ブール演算の応答を反転させ、not が正比較の場合、true 文を返します。応答が false の場合、else 文が返されます。

使用方法

  • {{not value yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。

  • {{#not value}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/not}}

    not は、ブロック文の前にポンド記号(#)をつけ、最後に {{/not}} を閉じなければなりません。

このブロックステートメントでは、 User.UerAttributes.FavoriteColors.[0] 属性は文字列に対してチェックされます。redeqヘルパーを使用します。not ヘルパーは、eq ヘルパーとは逆の値を返します。レスポンスが 以外の色を返した場合 redtrueステートメントが返されます。レスポンスが を返した場合 red次に、false 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] が の場合、 は false を返します。red.

または

引数の要素のいずれかが等しいかどうかを比較し、その結果に基づいて応答を返します。このヘルパーは、ブール値以外の値に対して使用することができます。

使用方法

  • {{or valuea valueb valuec valued yes='y' no='n'}}

    を置き換えることができます。y また、n 他の値、例えば yes また、no、または条件に応じて返される他の文字列。条件として、少なくとも 2 つの要素を渡す必要があります。

  • {{#or valuea valueb}}

    条件が 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")}}

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 value X}}、置き換え X 保持する文字数を示す数値。負の数には対応していません。

この例では、abbreviate を使用して User.UserAttributes.LastName.[0] を 6桁に切り捨てます。応答には省略記号が含まれ、そのドットには 6 文字の合計にカウントされます。

{{abbreviate User.UserAttributes.LastName.[0] 6}} が返す

Ale... if Alejandro は の値です[0]

大文字にする

空白の間にある各単語を大文字にします。

使用方法

{{capitalize value}}

この例では、Attributes.description.[0] エントリーの各単語の先頭文字を大文字にします。

{{capitalize Attributes.description.[0]}}

Attributes.description.[0] が返す場合

My First Postの値が Attributes.description.[0] の場合 my first post.

capitalizeFirst

値の先頭の文字を大文字にします。

使用方法

{{capitalizeFirst value}}

この例では、Attributes.description.[0] エントリーの最初の単語の先頭の文字を大文字にします。

{{capitalizeFirst Attributes.description.[0]}} が返す

My first postの値が Attributes.description.[0] の場合 my first post.

center

指定された幅のフィールドの値を、指定された数だけ中央揃えします。オプションで、パディングに表示する文字を渡すか、フィールドを空白にすることができます。文字が渡されない場合、空白が使用されます。

使用方法

{{center value size=X [pad=" "}} 、置き換え X 数値。

pad を空白にした場合、空白がレスポンスのパディングとして使用されます。文字を渡すと、その文字がパディングの各空間に表示されます。負の数は対応していません。

この例では、 の値は のサイズをLocation.City 中心としています。19.

{{center Location.City size=19}} が返す

"    Los Angeles    " Location.City が の場合 Los Angeles。 出力例に表示される引用符は、強調のみを目的としていることに注意してください。

切り取る

指定された値を文字列から削除します。

使用方法

{{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] エントリは User.UserAttributes.StartDate.[0] 09/19/2020で、 に基づくfull日付形式を使用してメッセージが送信されます。America/Los_Angeles タイムゾーン。

We 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 count singular plural [includeCount=false]}}

  • 引数に渡す文字列の単数形および複数形を入力します。

  • includeCountfalse に設定した場合、応答ではカウントを返しません。trueに 設定すると、count が応答に含まれます。

次の例では、リンゴを購入する際の編曲を、includeCount 有るか無いかで表示します。

Thank you for your purchase of {{inflect 3 apple apples includeCount=false}}. を返す。

Thank you for your purchase of apples.

includeCounttrue に設定されている場合、応答は

Thank you for your purchase of 3 apples.

join

配列、イテレーター、または反復可能なオブジェクトを結合します。応答はリストを返し、リストの各値は join で渡した文字で連結されます。例えば、カンマ (,) で値を区切ります。このヘルパーの値は、属性位置インデックスを持たないリストでなければなりません。例えば、Attributes.custom_attribute のようなものです。

使用方法

{{join value " // " [prefix=""] [suffix=""]}}

この例では、コンマとスペース (", ") で区切った色のリストを返しています。

{{join Attributes.favorite_colors ", "}} が返す

blue, red, green Attributes.favorite_colors がリストの場合 blue,red,green.

ljust

値を左余白に揃え、値の長さが数値と一致するように、右に余白を追加します。負の数には対応していません。

オプションで pad に表示する文字を渡すか、フィールドを空白にすることができます。pad の値を空白にした場合、デフォルト値は空白になります。

使用方法

{{ljust value size=X [pad=" "]}}、ここで X は、空白を含む値の合計長です。

この例では、左の根拠値は です。15 は Location.City に適用されます。

{{ljust Location.City size=15}} が返す

"Los Angeles    " の値が Location.City の場合 Los Angeles。 出力例に表示される引用符は、強調のみを目的としていることに注意してください。

lower

値を小文字に変換します。

使用方法

{{lower value}}

この例では、 の[0]エントリUser.UserAttributes.LastName.[0]が小文字に変更されています。

{{lower User.UserAttributes.LastName.[0]}} が返す

santos if Santos は の値です[0]

now

渡されたタイムゾーン ID に基づいて、現在の日付を出力します。タイムゾーン のリストについてはIDs、「」を参照してくださいhttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones

使用方法

{{now ["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.

Congratulations on your 22nd birthday!

replace

ある文字列を別の文字列に置き換えます。文字列または数値はリテラルでなければなりません。ワイルドカード文字はサポートされていません。

使用方法

{{replace stringToReplace replacementValue}}

この例では、アンダースコア (_) を空白に置き換えます。

{{replace Location.City " " "_"}} が返す

Los_Angeles Location.City が の場合 Los Angeles.

rjust

値を右余白に揃え、値の長さが数値と一致するように、左に余白を追加します。負の数は対応していません。

オプションで pad に表示する文字を渡すか、フィールドを空白にできます。pad の値を空白にした場合、デフォルト値は空白になります。

使用方法

{{rjust value size=X [pad=" "]}}、ここで X は、空白を含む値の合計長です。

この例では、正しい根拠値は です。15Location.City 属性に適用されます。

{{rjust Location.City size=15}} が返す

"    Los Angeles" Location.City が の場合 Los Angeles。 出力に表示される引用符は、強調のためにのみ提供されることに注意してください。

slugify

渡された値を小文字に変換し、単語以外の文字 (英数字とアンダースコア) を削除し、空白をハイフンに変換し、先頭または末尾の空白を削除します。

使用方法

{{slugify value}}

この例では、Location.City 属性に対して slugify を実行します。

{{slugify Location.City}} が返す

los-angeles Location.City が の場合 Los Angeles.

stripTags

値から [X]HTML タグを取り除きます。

使用方法

{{stripTags value}}

この例では、User.UserAttributes.interest.[0] のHTMLタグが削除されます。

{{stripTags User.UserAttributes.interests.[0]}} が返す

ArtUser.UserAttributes.interests.[0] が の場合<h1>Art</h1>

substring

新しい文字列を、渡された値の部分文字列として返します。長さと位置は整数値の startOffsetendOffset のパラメータで決定します。負の数は対応していません。endOffset が渡されない場合、部分文字列は元の文字列の最後の文字を使用します。

使用方法

{{substring value startOffset [endOffset]}}

この例では、4 と 9 endOffset のオフセットが Location.City 属性に適用されます。

{{substring Location.City 4 9}} が返す

Angel Los Angeles が の値Location.Cityである場合 Los Angeles.

UPPER

渡された値を大文字に変換します。

使用方法

{{upper value}}

この例では、User.UserAttributes.LastName 属性の [0] のエントリをすべて大文字に変換します。

{{upper User.UserAttributes.LastName.[0]}} が返す

ROE User.UserAttributes.LastName.[0] 値が の場合 Roe.

yesno

truefalse、および NULLYesNo、および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 つの数値の加算結果を返します。

使用方法

{{add arg1 arg2}}

{{add 5 2.3}} が返す

7.3

ceiling

渡された整数値を最も近い整数に切り上げます。

使用方法

{{ceiling value}}

{{ceiling 5.23}} が返す

6

decode64

base64 でエンコードされた値を文字列にデコードします。

使用方法

{{decode64 "string"}}

{{decode64 "SGVsbG8gd29ybGQ="}} が返す

Hello World

除算

浮動小数点を含む 2 つの数値の除算結果を返します。

使用方法

{{divide arg1 arg2}}

{{divide 5 2.3}} が返す

2.17391304

encode64

base64 を使用して引数に渡された文字列をエンコードします。

使用方法

{{encode64 "string"}}

{{encode64 "Hello World"}}

SGVsbG8gd29ybGQ=

floor

渡された整数値を最も近い整数に切り下げます。

使用方法

{{floor value}}

{{floor 5.23}} が返す

5

md5

MD5 アルゴリズムを使用して、渡された文字列をハッシュします。

使用方法

{{md5 "string"}}

{{md5 "Hello World"}}

3e25960a79dbc69b674cd4ec67a72c62

モジュロ

浮動小数点を使用して 2 つの数値の余りを返します。

使用方法

{{modulo arg1 arg2}}

{{modulo 7 2}} が返す

1

multiply

浮動小数点数とともに 2 つの数値の乗算結果を返します。

使用方法

{{multiply arg1 arg2}}

{{multiply 5 2.3}} が返す

11.5

round

小数点以下を四捨五入して、最も近い整数にします。

使用方法

{{round value}}

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

減算

浮動小数点数とともに 2 つの数値の減算結果を返します。

使用方法

{{subtract arg1 arg2}}

{{subtract 5 2.3}} が返す

2.7

uuid

は、標準の 128 ビット形式でランダムUUIDに を生成します。引数に値を渡す必要はありません。

使用方法

{{uuid}}

{{uuid}} が返す

95f36680-152c-4052-99ec-cc3cdf7ca594

技術的にはヘルパーではありませんが、インライン部分的な表現は、繰り返し文字列を含むテンプレートを合理化するハンドルバーの方法であり、再利用に適しています。詳細については、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 パーシャルを作成したら、パーシャルの名前の前に > (大文字) 記号をつけ、その後に空白を入れることで、テンプレートのどこにでも挿入できます。

こんにちは {{> fullName}}

true の場合、 はユーザーの姓名を返します。例えば、Hello Jane Doe。 それ以外の場合、姓が見つからない場合は、Hello Jane が返されます。

ハンドルバーには、ここで説明されている以外の追加機能が含まれています。詳細については、「handlebarsjs.com」を参照してください。

メッセージテンプレートヘルパーで変数を使用する

User.UserAttributes.LastName などの Amazon Pinpoint カスタム属性は、1 つの項目でも、複数の項目でも、リストとして保存されます。文字列の引数が必要なヘルパーでリストを渡す場合、属性名と一緒に属性インデックス値も指定する必要があります。この属性インデックス値は、属性リストからの値の位置を示します。.[0] はリストの最初のエントリ、.[1] は 2 番目のエントリ、.[2]は 3 番目のエントリ、のようになります。例えば、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 コンソールでは、これらの文字を含む属性名を表示できません。この制限は、属性値には適用されません。

ネストされたヘルパーを使用する

複数のメッセージテンプレートヘルパーを互いにネストすることができます。次に、2 つの {{ first helper (second helper)}} ヘルパーをフォーマットする例を示します。2 番目のヘルパーが最初に処理され、その後に 1 番目のヘルパーが処理されます。最初のヘルパーが常に出力を決定することを留意してください。後続のヘルパーは、{{ first helper (second helper (third helper) )}} のように、最初のヘルパー内にネストする必要があります。

次の例 {{capitalizeFirst (lower "JANE")}} は、JANEJane に変更するために 2 つのヘルパーをネストさせる方法を示しています。lower はまず JANEjane に変換します。その後、capitalizeFirstjaneJane に変換します。