メインコンテンツへスキップ
Automation API は、REST 準拠のサービスであり、Kameleoon Web インターフェースで利用可能なほとんどの操作をプログラムで実行できるようにします。Automation API を使用して、Kameleoon プラットフォームおよびそのコア機能と連携するカスタムソフトウェアを構築できます。 たとえば、Automation API を使用して以下を行うことができます:
  • Kameleoon を Git リポジトリと接続して、バリエーションコードを管理する。
  • リアルタイムの実験結果が表示されるカスタムダッシュボードを設計する。
  • 複数のプロジェクトにわたってゴールとセグメントの作成を自動化する。
Kameleoon は、Automation API の新しいバージョンでエンドポイントやパラメータを変更する場合があります。予定されている変更に関する通知を受け取るには、Kameleoon changelog の更新を購読してください。
Automation API は大量のリクエストをサポートしません。アカウントまたはユーザーあたり 1 分間に 12 回 までに呼び出しを制限してください。すべての Web サイト訪問者の高頻度トラッキングに Automation API を使用しないでください。リクエスト量がより多い場合は、Data API を使用してください。
Automation API の機能拡張をリクエストするには、Kameleoon チームにご連絡ください。皆様のフィードバックをお待ちしており、既存の UI 機能をすばやく API に追加できます。

チュートリアル

実験を作成する

このチュートリアルでは、Kameleoon プラットフォームでの主要な操作を行うためのステップバイステップの手順を説明します。以下を学びます:

実験結果を取得する

実験を開始すると、最もパフォーマンスの良いバリエーションを判断するためのインサイトを提供する結果が生成されます。結果をリクエストして勝者のバリエーションを特定する方法は Retrieving Experiments Results チュートリアルで学べます。

認証

Automation API は、認可に OAuth 2.0 フレームワークを使用します。Kameleoon はユースケースに応じて 2 つの主要なフローをサポートします:
  • Client Credentials フロー: 内部目的で API を使用する Kameleoon の顧客である場合は、このフローを使用します。このフローを使用すると、自身のアカウントと Web プロパティをプログラムで管理できます。
  • Authorization Code フロー: アプリケーションを Kameleoon と統合する技術パートナーである場合は、このフローを使用します。このフローを使用すると、他の Kameleoon ユーザーに代わってデータに安全にアクセスできます。

Client Credentials フロー

Client Credentials フローは最もシンプルな認証方法です。このフローを使用するには、クライアント認証情報をアクセストークンと交換します。
client_idclient_secret は Kameleoon プラットフォーム上で確認できます。Account > My profile に移動し、See my API credentials をクリックしてください。

1. アクセストークンを取得する

認証情報を指定して、トークンエンドポイントに POST リクエストを送信します。
curl
curl -X POST "https://api.kameleoon.com/oauth/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials" \
     -d "client_id=YOUR_CLIENT_ID" \
     -d "client_secret=YOUR_CLIENT_SECRET"
認可サーバーは access_token を含む JSON オブジェクトで応答します:
{
  "access_token": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9..."
}

2. API にアクセスする

リクエストの Authorization HTTP ヘッダーに Bearer トークンとしてアクセストークンを含めます。
curl
curl -H "Authorization: Bearer <ACCESS_TOKEN>" \
     -H "Content-Type: application/json" \
     "https://api.kameleoon.com/experiments"
  • アクセストークンはデフォルトで 2 時間 有効です。
  • Client Credentials フローではリフレッシュトークンは使用しません。
  • すべての API リクエストには HTTPS を使用する必要があります。プレーンな HTTP で行われたリクエストは失敗します。

Authorization Code フロー

Authorization Code フローを使用すると、サードパーティの開発者がアプリケーションを Kameleoon のデータと統合できます。ユーザーのアカウントリソースにアクセスするには、ユーザーから明示的な許可を得る必要があります。
OAuth アプリケーションをリクエストするには、Kameleoon のテクニカルアカウントマネージャーにご連絡ください。アプリケーション用のリダイレクト URL を提供する必要があります。Kameleoon は client_idclient_secret を提供します。

1. 認可のためにユーザーをリダイレクトする

アプリケーションからユーザーを認可 URL にリダイレクトします:
https://api.kameleoon.com/oauth/authorize?client_id=my-application-name&response_type=code&redirect_uri=https://application.company.com/
ユーザーが許可を与えると、Kameleoon は認可コードと共にユーザーをアプリケーション URL にリダイレクトします:
https://application.company.com/?code=AUTHORIZATION_CODE

2. アクセストークンとリフレッシュトークンを取得する

認可コードをトークンと交換します。client_id:client_secret 文字列を Base64 エンコードして、Authorization: Basic ヘッダーに含めます。
curl
curl -X POST "https://api.kameleoon.com/oauth/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -H "Authorization: Basic <BASE64_ENCODED_CREDENTIALS>" \
     -d "grant_type=authorization_code" \
     -d "code=AUTHORIZATION_CODE" \
     -d "redirect_uri=https://application.company.com/"
レスポンスにはアクセストークンとリフレッシュトークンの両方が含まれます:
{
  "access_token": "...",
  "refresh_token": "..."
}

3. 期限切れのトークンを更新する

ユーザーを再認可せずに新しいアクセストークンを取得するには:
curl
curl -X POST "https://api.kameleoon.com/oauth/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -H "Authorization: Basic <BASE64_ENCODED_CREDENTIALS>" \
     -d "grant_type=refresh_token" \
     -d "refresh_token=YOUR_REFRESH_TOKEN"

レート制限

Automation API のレート制限は、ユーザーアクセストークンごとに発生します。Kameleoon は 2 つのレート制限ウィンドウを使用します:
  • 10 秒間隔: 最大 50 リクエスト。
  • 1 時間間隔: 最大 1,000 リクエスト。
これらの制限を超えると、API は HTTP 429 Too Many Requests エラーを返します。レート制限を最小限に抑えるには:
  • キャッシュを実装する: API レスポンスをローカルに保存し、ページロードごとに API を呼び出さないようにします。
  • Data API を使用する: アプリケーションが大規模なリアルタイムトラッキングを必要とする場合は、Data API を使用してください。

HTTP ステータスコード

CodeStatus説明
200OKリクエストが成功しました。
201Createdリソースが正常に作成されました。
400Bad Requestリクエスト本文が無効です。Content-Type: application/json ヘッダーがあることを確認してください。
401UnauthorizedAPI トークンが欠落しているか不正な形式です。
403Forbidden必要な権限が不足しているか、トークンが取り消されています。
429Too Many Requestsレート制限を超えました。
5xxServer Error内部エラーが発生しました。問題が解決しない場合は Kameleoon サポートに連絡してください。

クエリパラメータ

複数のオブジェクトを取得するエンドポイントでは、データのページネーション、フィルタリング、ソートにクエリパラメータを使用します。

ページネーション

クエリはデフォルトで 1 ページあたり 20 アイテム を返します(最大 200)。最大上限を取得するには perPage=-1 を使用します。
パラメータ説明
pageinteger取得するページ番号。
perPageintegerページあたりのアイテム数(デフォルト 20、最大 200)。
filterarrayフィルタリングパラメータ。
sortarrayソートパラメータ。

フィルタリング

フィルタを URL で送信する際は、パーセントエンコードする必要があります。 : filter=[{"field":"name","operator":"EQUAL","parameters":["Test"]}]
Field説明
fieldstringフィルタリング対象のフィールド。
operatorenumオプションには次が含まれます: EQUALNOT_EQUALLESSGREATERLIKEINIS_NULL など。
parametersarray一致させる具体的な値。

ソート

Field説明
fieldstringソート対象のフィールド。
directionenumASC(昇順)または DESC(降順)。