コンテンツにスキップ

構文とルール

ディレクティブを書きながら手元で参照するためのページです。使えるオプション、保存が拒否されるケース、上限、応用例をまとめています。

構文説明書かない場合
:saveレスポンスを格納する名前。JSONは {{ 名前.フィールド }} で取り出しますJSONは connected に格納され、テキストはディレクティブの場所に出力
:methodget または postget
:bodyPOSTで送るデータ。:method post と一緒に使う必要がありますデータなしで呼び出し
:content_type送信するデータの形式。JSON bodyは application/jsonフォーム形式(application/x-www-form-urlencoded)
:headers追加のヘッダーをJSONオブジェクトで書きます。例: :headers {"X-Store-Id": "123"}
JSON形式でない場合は呼び出さずに失敗として処理されます。認証用のヘッダーには認証情報の登録を使ってください
デフォルトのヘッダーのみ送信
:basic_authBasic方式で登録した認証情報の名前認証なしで呼び出し
:auth_credentialsToken方式で登録した認証情報の名前認証なしで呼び出し
:cache_max_ageレスポンスの再利用時間。単位は秒です。受信者ごとに値が同じ呼び出しであれば、長めに設定して呼び出し回数を減らせますデフォルトのキャッシュルール(レスポンスの再利用を設定するを参照)
:no_cache毎回新しく呼び出します。在庫のように常に最新である必要がある値に使いますキャッシュを使用
default:値が空のときに表示する文言(パーソナライズメッセージの既存フィルター)空欄で配信
{% abort_message %}この受信者には配信しません空欄でも配信
保存が拒否されるケース解決方法
Liquid構文のエラー、サポートされていないフィルター・タグ括弧の対応とフィルター名を確認してください
サポートされていないオプション、オプション値のエラー:method にはgetとpostのみ使えます
:cache_max_age は秒単位で書きます(例: 3600)
:retry はまだサポートしていません(今後対応予定)
メッセージあたりの呼び出し数の超過件名・本文などすべてのフィールドを合わせて3つまでにしてください。
forループ内のディレクティブループの外で1回呼び出し、レスポンスの配列をループしてください(下の例4)
リクエストURLのドメインにパーソナライズ変数リクエストURLのドメインにはパーソナライズ変数を使えません
ドメインは固定し、変数はパス・クエリにのみ使ってください
保存した名前をフィールドなしで使用{{ point }} ではなく {{ point.amount }} のようにフィールドまで書いてください
認証情報の問題登録済みの名前か、方式(Basic・Token)とオプション(:basic_auth・:auth_credentials)が合っているか、許可ドメインがリクエストURLと完全に一致しているかを確認してください
項目上限
メッセージあたりの呼び出し数件名・本文などすべてのフィールドを合わせて3つ
· ディレクティブごとに1つと数えます。フィールドが異なれば、同じURLを書いてもそれぞれ数えます
· {% if %} の分岐内のディレクティブも、実行されるかどうかに関係なくすべて数えます
· ジャーニー自動化ではメッセージアクションごとに3つ
1回の呼び出しあたりの最大待機時間2秒
レスポンスのサイズ1MB
リクエストURLの長さ変数の置換後で2048文字
レスポンスのキャッシュ保持時間· GETはデフォルトで5分
· POSTは :cache_max_age を指定した場合のみ
· :cache_max_age の指定範囲は300秒(5分)~14400秒(4時間)。範囲外の値は最も近い上限値に合わせて適用されます
認証情報の登録数プロジェクトあたり10件

基本的な使い方に慣れたあとに参考にできる例です。


例1. 件名と本文で同じ値を使う

Section titled “例1. 件名と本文で同じ値を使う”

:save で保存した名前は、ディレクティブを書いたフィールドの中でのみ使えます。件名と本文のように別のフィールドで使うには、フィールドごとにディレクティブを書いてください。URLが同じであれば、キャッシュされたレスポンスを再利用します。

件名

{% connected_content https://api.example.com/products/{{ tags.wishlist_sku }} :save product %}お気に入りの{{ product.name }}が値下がりしました。

本文

{% connected_content https://api.example.com/products/{{ tags.wishlist_sku }} :save product %}今なら{{ product.price | number_with_delimiter }}円でお求めいただけます。

例2. 前のレスポンスを次の呼び出しに使う

Section titled “例2. 前のレスポンスを次の呼び出しに使う”

ディレクティブは上から下へ実行されるため、先に保存した値を次のリクエストURLに使えます。前の呼び出しが終わってから次の呼び出しが始まるので、待機時間は積み重なります。

{% connected_content https://api.example.com/me?uid={{ userId }} :save me %}
{% connected_content https://api.example.com/orders/{{ me.id }} :save orders %}
{{ me.name }}様のご注文 {{ orders.total }}件

例3. 条件に応じて別のAPIを呼び出す

Section titled “例3. 条件に応じて別のAPIを呼び出す”

{% if %} の中でも呼び出すことができ、両方に同じ名前を使っても問題ありません。実際に実行された側のレスポンスが格納されます。

{% if tags.vip %}
{% connected_content https://api.example.com/vip-deals :save deals %}
{% else %}
{% connected_content https://api.example.com/normal-deals :save deals %}
{% endif %}
本日の特価:{{ deals.title }}

例4. レスポンスのリストをループで表示する

Section titled “例4. レスポンスのリストをループで表示する”

ディレクティブはループの外で1回だけ呼び出し、取得したリストをループで表示します。

{% connected_content https://api.example.com/reco?uid={{ userId }} :save reco %}
あなたへのおすすめ商品です。
{% for item in reco.items %}
- {{ item.title }} {{ item.price | number_with_delimiter }}円
{% endfor %}