Webhook - Keen.io API
Keen.io API用の高度なWebhook - テンプレート変数を使用してカスタムリクエストアクションを構成する方法
概要
Keen.ioにhttpリクエストを送信し、単一のトランザクションに対する複数の購入イベントを記録します。リクエストボディ全体はJSONメッセージです。
ベンダーの要件
ドキュメンテーション: Keen IO Data Collection API
リクエストURL
https://api.keen.io/API_VERSION/projects/PROJECT_ID/events
APIリクエストボディの例:
{
    "purchases": [
        {
            "item": "Golden gadget",
            "price": 25.50,
            "transaction_id": "f029342"
        },
        {
            "item": "Different gadget",
            "price": 17.75,
            "transaction_id": "f029342"
        }
    ],
    "transactions": [
        {
            "id": "f029342",
            "items": 2,
            "total": 43.25
        }
    ]
}
アクションの実装
メソッドフィールド
POSTに構成します。
URLフィールド
{{url_template}}に構成します。
URLはハードコーディング(組み込みのAPIバージョンとプロジェクトID付き)でも、テンプレートベースでも構いません。後者のアプローチは、データレイヤー属性の柔軟性を高めるために採用されています。下のテンプレートセクションを参照してください。
ボディコンテンツタイプ
application/jsonを選択します。
ボディデータ
“Body"オプションを選択し、テンプレート参照を提供します。
| 名前 | 値 | 
|---|---|
| Body | {{json_template}} | 
テンプレート変数
テンプレートで参照され、置換される名前と値のペアを構成します。変数の値はこの例ではカスタム値ですが、動的なデータレイヤー属性として簡単に提供することができます。
| 名前 | 値 | ノート | 
|---|---|---|
transactionId | 
f029342 | 
|
transactionItemCount | 
2 | 
|
transactionTotalPrice | 
43.25 | 
|
purchases.item | 
Keen.io Purchase Items | 文字列のセット属性 | 
purchases.price | 
Keen.io Purchase Prices | 文字列のセット属性 | 
apiVersion | 
3.0 | 
|
projectId | 
987.65 | 
変数は内部的にJSONに変換され、すべてのテンプレートで利用可能になります。
結果となるJSON構造:
{
  "purchases": [
    {
      "price": "17.75",
      "item": "Different gadget"
    },
    {
      "price": "25.50",
      "item": "Golden gadget"
    }
  ],
  "apiVersion": "3.0",
  "transactionId": "f029342",
  "transactionItemCount": "2",
  "transactionTotalPrice": "43.25",
  "projectId": "98765"
}
テンプレート
url_template
https://api.keen.io/{{apiVersion}}/projects/{{projectId}}/events
json_template
{
    "purchases": [
        {{#purchases}}
        {
            "item": "{{item}}",
            "price": {{price}},
            "transaction_id": "{{transactionId}}"
        }{{#iter.hasNext}}, {{/iter.hasNext}}
        {{/purchases}}
    ],
    "transactions": [
        {
            "id": "{{transactionId}}",
            "items": {{transactionItemCount}},
            "total": {{transactionTotalPrice}}
        }
    ]
}
レンダリングされたテンプレート
内部的にテンプレートがレンダリングされ(下記参照)、参照された場所(例:URLフィールドやBody)にその内容が注入されます。
url_template
https://api.keen.io/3.0/projects/98765/events
json_template
{
    "purchases": [
        {
            "item": "Different gadget",
            "price": 17.75,
            "transaction_id": "f029342"
        },
        {
            "item": "Golden gadget",
            "price": 25.50,
            "transaction_id": "f029342"
        }
    ],
    "transactions": [
        {
            "id": "f029342",
            "items": 2,
            "total": 43.25
        }
    ]
}
アクション構成のスクリーンショット
最終更新日 :: 2024年March月29日