メッセージテンプレートを送信する際には、language
フィールドを使って言語を指定する必要があります。使用するすべての翻訳に関して、事業者側が責任を負います。
メッセージテンプレートでサポートされている言語を以下に示します。
言語 | コード |
---|---|
アフリカーンス語 | af |
アルバニア語 | sq |
アラビア語 | ar |
アゼルバイジャン語 | az |
ベンガル語 | bn |
ブルガリア語 | bg |
カタルーニャ語 | ca |
中国語(中国) | zh_CN |
中国語(香港) | zh_HK |
中国語(台湾) | zh_TW |
クロアチア語 | hr |
チェコ語 | cs |
デンマーク語 | da |
オランダ語 | nl |
英語 | en |
英語(英国) | en_GB |
英語(米国) | en_US |
エストニア語 | et |
フィリピン | fil |
フィンランド語 | fi |
フランス語 | fr |
ドイツ語 | de |
ギリシャ語 | el |
グジャラート語 | gu |
ハウサ語 | ha |
ヘブライ語 | he |
ヒンディー語 | hi |
ハンガリー語 | hu |
インドネシア語 | id |
アイルランド語 | ga |
イタリア語 | it |
日本語 | ja |
カンナダ語 | kn |
カザフ語 | kk |
韓国語 | ko |
ラオ語 | lo |
ラトビア語 | lv |
リトアニア語 | lt |
マケドニア語 | mk |
マレー語 | ms |
マラヤーラム語 | ml |
マラーティ語 | mr |
ノルウェー語 | nb |
ペルシャ語 | fa |
ポーランド語 | pl |
ポルトガル語(ブラジル) | pt_BR |
ポルトガル語(ポルトガル) | pt_PT |
パンジャブ語 | pa |
ルーマニア語 | ro |
ロシア語 | ru |
セルビア語 | sr |
スロバキア語 | sk |
スロベニア語 | sl |
スペイン語 | es |
スペイン語(アルゼンチン) | es_AR |
スペイン語(スペイン) | es_ES |
スペイン語(メキシコ) | es_MX |
スワヒリ語 | sw |
スウェーデン語 | sv |
タミル語 | ta |
テルグ語 | te |
タイ語 | th |
トルコ語 | tr |
ウクライナ語 | uk |
ウルドゥー語 | ur |
ウズベク語 | uz |
ベトナム語 | vi |
ズールー語 | zu |
メッセージテンプレートは、言語パックに保管されます。言語パックとは、特定の言語やロケールのメッセージテンプレート要素のバンドルです。ある言語またはロケールに対して少なくとも1つの翻訳をビジネスでサポートする場合、その言語またはロケール用のパックが作成されます。
メッセージテンプレートのネームスペースは、特定のビジネスのための言語パックのバンドルです。
language: policy
フィールドをdeterministic
(デフォルト値)に設定してメッセージテンプレートを送信すると、WhatsAppはメッセージテンプレートを要求されたとおりの言語とロケールで配信します。次にデバイスが、その特定の言語パックをサーバー上でクエリします。
このメッセージがデバイスに配信されると、デバイスは以下を実行します。
"policy": "deterministic"
と"code": "en"
が指定されている場合、キャッシュされたen
パックがデバイスに存在するかどうかを調べます。
en
パックがサーバー上に存在するかどうかを調べます。
structure_unavailable
エラーを返し、デバイスにメッセージは表示されません。"element": "hello_world"
エレメントが存在するかどうかを調べます。
en
パックをサーバーからダウンロードして、エレメントチェックを繰り返します。structure_unavailable
エラーを返し、デバイスにメッセージは表示されません。デバイス上の言語/ロケール設定は完全に無視されます。
deterministic
ポリシーを使用する場合、リクエストする対象が存在しないという問題が発生する可能性があります。次の点を確認します。
メッセージテンプレートでは、デバイスのロケール設定に応じてメッセージをローカライズする、すぐに利用可能なローカリゼーションサポートが提供されています。
テンプレートには、メッセージに動的に組み込まれるパラメーターが含まれています。このドキュメントの使用例では、メッセージテンプレートは次のようになります。
"You made a purchase for {{1}} using a credit card ending in {{2}}."
"namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e"
および"element_name": "purchase_with_credit_card"
の場合、リストの最初の値がテンプレートメッセージ内の{{1}}変数と置き換えられ、リストの2つ目の値が{{2}}変数と置き換えられます。
ペイロードに渡されるパラメーターの数は、template
オブジェクト内のパラメーターの数と一致しなければなりません。一致しない場合、メッセージテンプレートの表示に問題があったことを通知するコールバックが返されます。
これらのパラメーターの一部(date_time
やcurrency
など)はローカライズ可能であり、カスタマーの言語およびロケールの設定に合わせて表示できます。デバイスがパラメーターのローカライズに失敗すると、デフォルト値としてfallback_value
が使われます。
fallback_value
に加えてさらに通貨と日付を指定することが必要な場合は、currency
オブジェクトとdate_time
オブジェクトを使います。その場合、クライアントはできる限り最適な方法で該当データをローカライズし、データをローカライズできない場合にのみ、デフォルトのfallback_value
が使われます。
以下の表にlocalizable_params
オプションを示します。
名前 | 説明 |
---|---|
型: 文字列 | 必須。 ローカライズが失敗した場合のデフォルトテキスト。すべてのローカリゼーションパラメーターにはフォールバック値が必要です。テキストを指定する場合に必要なのは、フォールバック値だけです。 |
| 任意。
|
| 任意。
|
currency
オブジェクトWhatsapp Business APIクライアントは、指定されたローカリゼーションに基づいて通貨のフォーマットを設定しようと試みます。
名前 | 説明 |
---|---|
型: 文字列 | 必須。 ISO 4217で定義されている通貨コード。 |
型: 整数 | 必須。 金額に1000を掛けた値。 |
{ "type": "currency", "currency" : { "fallback_value": "$230.99", "code": "USD", "amount_1000": 230990 } }
date_time
オブジェクトWhatsapp Business APIクライアントは、指定されたローカリゼーションに基づいて日付/時刻のフォーマットを設定しようと試みます。サポートされる日付と時刻の形式は以下のとおりです。
名前 | 説明 |
---|---|
|
コンポーネントによる日付/時刻。 |
|
Unixエポックによる日付/時刻。 |
少なくともcomponent
またはunix_epoch
のいずれかのフィールドが必要です。指定すると、指定したものだけが表示できます。
名前 | 説明 |
---|---|
型: 文字列 | 任意。 日付(指定されている場合)から導出された値と異なる場合は、導出された値を使用します。文字列と数字のどちらも指定できます。 |
型: 整数 | 任意。 年 |
型: 整数 | 任意。 月 |
型: 整数 | 任意。 日 |
型: 整数 | 任意。 時間 |
型: 整数 | 任意。 分 |
型: 文字列 | 任意。 暦の種類 |
{ "type": "date_time", "date_time" : { "fallback_value": "October 25, 2020", "day_of_week": "Saturday", "day_of_month": 25, "year": 2020, "month": 10, "hour": 12, "minute": 0 } }
DateTimeUnixEpoch
は廃止される予定です。廃止後はDateTimeComponent
がデフォルトになります。問題を回避するため、コードを変更してください。
名前 | 説明 |
---|---|
型: 整数 | 必須。 秒単位のエポックタイムスタンプ。このフィールドは廃止される予定です。 |
このドキュメントには、メッセージテンプレートに関する参照情報が含まれています。テンプレートを作成して送信する方法については、メッセージテンプレートの送信をご覧ください。メッセージテンプレートで使用できるすべてのパラメーターについては、メッセージ、メッセージテンプレートをご覧ください。
https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager