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

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

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

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}}

好きな色はありません。

{{/each}} が返す

  • 赤色

  • 青色

  • 黄色

true 文のために。

if

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

使用方法

{{#if value}}

値は未定義ではない

{{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 — 引数内の要素のいずれかが等しいかどうかを比較します。

また、

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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")}}

アメリカのロサンゼルスに住んでいます。

{{else}}

アメリカのロサンゼルスに住んでいません。

{{/and}}

eq

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#eq valuea valueb}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/eq}}

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

この例では、eqUser.UserAttributes.FavoriteColors.[0] の値が赤色であるかどうかを評価するために使用されます。応答が true の場合は、true 文が返されます。応答が false の場合は、else 文が返されます。

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

好きな色は赤色です。

{{else}}

赤色は嫌いな色です。

{{/eq}}

gt

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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"}}

車を借りるのに十分な年齢です。

{{else}}

車を借りるのに十分な年齢ではありません。

{{/gt}}

gte

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

Usage

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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"}}

車を借りるのに十分な年齢です。

{{else}}

車を借りるのに十分な年齢ではありません。

{{/gte}}

if

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

使用方法

  • {{#if value}}

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#if value}}

    条件が true です。

    {{else}}

    条件が false です。

    {{/if}}

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

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

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

ようこそ {{User.UserAttributes.FirstName.[0]}}

{{else}}

ようこそ

{{/if}}

ヘルパーが true のとき、Hello, Jane を返します。

lt

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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"}}

車を借りるのに十分な年齢ではありません。

{{else}}

車を借りるのに十分な年齢です。

{{/lt}}

lte

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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"}}

車を借りるのに十分な年齢ではありません。

{{else}}

車を借りるのに十分な年齢です。

{{/lte}}

neq

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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"}}

赤色が嫌いです。

{{else}}

赤色が好きです。

{{/neq}}

not

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

使用方法

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

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。

  • {{#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 valuea valueb valuec valued yes='y' no='n'}}

    yn は、条件によって、yesno など他の値や、戻り値にしたい文字列に置き換えることができます。条件として、少なくとも 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")}}

アメリカ西海岸に住んでいます。

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

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

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

Ale...Alejandro[0] の値の場合。

大文字にする

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

使用方法

{{capitalize value}}

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

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

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

My First PostAttributes.description.[0]の値が my first post の場合。

capitalizeFirst

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

使用方法

{{capitalizeFirst value}}

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

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

My First PostAttributes.description.[0]の値が my first post の場合。

center

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

使用方法

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

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

この例では、Location.City をサイズ 19 で中央揃えします。

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

「    Los Angeles    」Location.CityLos Angeles の場合。出力例で表示される引用符は強調のためにのみ提供されます。

切り取る

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

使用方法

{{cut value [" "]}}で、引用符パラメータ内のスペースを切り取る値で置き換えます。パラメータ値が渡されない場合は、空白が使用されます。

この例では、Location.City 属性から文字 e を削除します。

{{cut Location.City "e"}} が返す

Los Angls[Location.CityLos 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日(火)はいつでもお会いできます。

インフレクト

カウントの値に応じた単数または複数の文字列を返します。

使用方法

{{inflect count singular plural [includeCount=false]}}

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

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

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

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

りんごをご購入いただきありがとうございました。

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

りんごを 3 つご購入いただきありがとうございました。

join

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

使用方法

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

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

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

青色、赤色、緑色Attributes.favorite_colors青色、赤色、緑色リストの場合。

ljust

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

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

使用方法

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

この例では、Location.City を 15 で左揃えします。

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

「Los Angeles    」Location.City の値が Los Angeles の場合。出力例に表示される引用符は、強調のためにのみ提供されます。

lower

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

使用方法

{{lower value}}

この例では、User.UserAttributes.LastName.[0][0] エントリーを小文字に変更します。

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

santosSantos[0] の値の場合。

now

渡されたタイムゾーン ID に基づいて、現在の日付を出力します。タイムゾーン ID のリストについては、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

順序付け

引数に渡される数値を順序付けします。例えば、11st22nd というように順序付けします。数値のみサポートします。

使用方法

{{ordinalize [number]}}

この例では、User.UserAttributes.UserAge[0] エントリーを順序付けし、メッセージと一緒に返します。

Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!2222nd として順序付けした値を返します。

22歳の誕生日おめでとうございます!

replace

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

使用方法

{{replace stringToReplace replacementValue}}

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

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

Los_AngelesLocation.City Los Angeles の場合。

rjust

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

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

使用方法

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

この例では、Location.City 属性を 15 で右揃えします。

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

「Los Angeles」Location.CityLos Angeles の場合。出力に表示される引用文は、強調のためにのみ提供されます。

slugify

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

使用方法

{{slugify value}}

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

{{slugify Location.City}} が返す

los_angelesLocation.CityLos 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]}}

この例では、Location.City 属性にオフセットを 4、EndOFFset を 9 に設定します。

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

Angel、Los Angeles が Location.City の値 である「Los Angeles」の場合。

UPPER

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

使用方法

{{upper value}}

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

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

ROEUser.UserAttributes.LastName.[0] 値が Roe の場合。

yesno

truefalse、および NULLYesNo、およびMaybe と置き換えます。

使用方法

{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}

この例では、IsUserSubscribed 属性が、あるユーザーが特定のリストに登録されているかどうかを返します。

{{yesno Attributes.IsUserSubscribed}} が返す

yesAttributes.IsUserSubscribedtrue の場合。

このセクションでは数学およびエンコーディングのヘルパーについて説明します。

  • 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. を返す。

毎日平均 19 分をウェブサイトを閲覧しています。

sha256

SHA-512 暗号化セキュリティを使用して、渡された文字列をハッシュ化します。

使用方法

{{sha256 "string"}}

{{sha256 "Hello World"}} が返す

a591a6d40bf420404a011733cfb7b190d62c65bf0bda32b57b277d9ad9d9f146e

sha512

SHA-512 暗号化セキュリティを使用して、渡された文字列をハッシュ化します。

使用方法

{{sha512 "string"}}

{{sha512 "Hello World"}} が返す

2c74fd17edafd80e8447b0d467b0d461e243b7eb74d2149a0ab1b74d2149a0ab1b9246f30382f27e857e85719ee67cbda0da8f51671064615d6d6b459b

減算

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

使用方法

{{subtract arg1 arg2}}

{{subtract 5 2.3}} が返す

2.7

uuid

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

使用方法

{{uuid}}

{{uuid}} が返す

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

技術的にはヘルパーではありませんが、インラインパーシャルは、繰り返される文字列を含むテンプレートを簡素化し、再利用を容易にするハンドルバーの方法です。詳細については、「handlebarsjs.com」 の「Inline partials」を参照してください。

使用方法

{{#* 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")}} は、JANEJane に変更するために 2 つのヘルパーをネストさせる方法を示しています。lower はまず JANEjane に変換します。その後、capitalizeFirstjaneJane に変換します。