認証フロー
OAuth パラメーターは、次のようにダッシュボードの値に対応します。
前提条件
始める前に、次の要件を満たしていることを確認してください。- MoEngage ダッシュボードの Settings > Account > API keys にアクセスできること。
- ワークスペースをホストしているデータセンターを特定していること。データセンターはダッシュボードの URL で確認できます。詳細については、データセンターを参照してください。ワークスペースをホストしているデータセンターがわからない場合は、MoEngage サポートにお問い合わせください。
OAuth ベース URL
OAuth リクエストはデータセンターの OAuth ホストに送信し、Public API へのリクエストは REST API ホストに送信します。このページの例に含まれる{dc} は、データセンター番号に置き換えてください。
ステップ 1: OAuth 2.0 API キーを作成する
1
API Keys ページを開く
MoEngage ダッシュボードの左側のナビゲーションメニューで、Settings > Account > API keys に移動します。
2
Create New Key ダイアログを開く
+ Create new key をクリックします。
3
キー名を入力する
Key name ボックスに、わかりやすい名前 (例:
orders-integration) を入力します。4
認証タイプを選択する
Authentication Type で OAuth 2.0 を選択します。
5
有効期限を設定する
Expiry time (in minutes) ボックスに、各アクセストークンの有効期間を入力します。値は 5~60 分の範囲で指定する必要があり、デフォルトは 15 分です。
6
API アクセスを選択する
Select APIs for access で、キーが呼び出す API グループを選択します。キーは、この一覧で選択したエンドポイントにのみアクセスできます。
7
キーを保存する
Create key をクリックします。ダッシュボードに Workspace ID と API キーの値が表示されます。
キーの名前、API アクセス、または有効期限を編集すると、キーを再生成した場合と同様に、そのキーから発行されたリフレッシュトークンが取り消されます。その後の更新では
ER010 が返されます。ステップ 2: アクセストークンを生成するの説明に従って、新しいアクセストークンを生成してください。
Segmentation API または Inform を呼び出すには、代わりに Basic Auth キーを作成してください。OAuth 2.0 キーがサポートする API グループと、キーの編集、再生成、アーカイブの手順については、API Key Dashboard を参照してください。
ステップ 2: アクセストークンを生成する
client_id と client_secret を、アクセストークンおよびリフレッシュトークンと交換します。リクエストボディはフォームエンコード形式 (application/x-www-form-urlencoded) で送信してください。JSON ボディを送信すると 415 Unsupported Media Type が返されます。
Generate Access Token
トークンの有効期限を確認する
レスポンスには 2 つの有効期限フィールドが含まれます。ステップ 3: MoEngage Public API を呼び出す
アクセストークンを Bearer トークンとしてAuthorization ヘッダーで送信します。
Call an API with an Access Token
認証エラー
認証に失敗すると、レスポンスにMOENGAGE-AUTH-ERROR-CODE ヘッダーが含まれます。
ステップ 4: アクセストークンを更新する
アクセストークンの有効期限が切れる前に、リフレッシュトークンを新しいアクセストークンと交換します。更新リクエストでは API キーを使用しません。ステップ 2 と同様に、リクエストボディはフォームエンコード形式 (application/x-www-form-urlencoded) で送信してください。
Refresh Access Token
更新では新しいリフレッシュトークンは発行されません。同じリフレッシュトークンを引き続き使用してください。更新が成功するたびに、そのトークンの有効期間がさらに 24 時間延長されます (MoEngage がトークンを発行した時点から最長 30 日まで)。
refresh_token_expires_in フィールドには、リフレッシュトークンの残りの有効期間が示されます。値が 0 に近づいた場合、または更新で ER010 が返された場合は、client_id と client_secret を使用して新しいアクセストークンを生成してください。トークンのライフサイクル
トークンエンドポイントは両方のトークンを発行します。その後、リフレッシュエンドポイントがアクセストークンを更新し、リフレッシュトークンの 24 時間の期間を再開します。これは、リフレッシュトークンが 30 日の上限に達し、トークンエンドポイントを再度呼び出すまで続きます。レート制限
トークンエンドポイントとリフレッシュエンドポイントには、次の制限が共通で適用されます。
トークンエンドポイントでは、両方の制限が
client_id と client_secret のペアごとに適用されます。リフレッシュエンドポイントでは、両方の制限が client_id と refresh_token のペアごとに適用されます。429 レスポンスには、待機する秒数を示す Retry-After ヘッダーが含まれます。同じ値は、非推奨の X-RETRY-AFTER ヘッダーにも含まれます。Retry-After を参照してください。
これらの制限は OAuth エンドポイントにのみ適用されます。アクセストークンを使用して呼び出す Public API の制限とペイロードサイズの上限については、Rate Limits を参照してください。
推奨されるプラクティス
- アクセストークンを再利用する: 有効期間中はアクセストークンを再利用してください。API 呼び出しのたびに新しいアクセストークンをリクエストしないでください。
- 事前に更新する:
ER008を待たずに、アクセストークンの有効期限が切れる数分前に更新してください。expires_inを使用して更新をスケジュールします。 - 少なくとも 24 時間に 1 回は更新する: 24 時間使用されなかったリフレッシュトークンは期限切れになり、そのリフレッシュトークンから発行されたアクセストークンは機能しなくなります。連携がそれより長くアイドル状態になる場合は、
ER010が返されることを想定し、新しいアクセストークンを生成してください。 - フォールバックとして
ER010を処理する: 更新リクエストと API 呼び出しの両方で対応してください。いずれかでER010が返された場合は、client_idとclient_secretを使用して新しいアクセストークンを生成します。 - API キーを安全に保管する: API キーは認証情報として扱ってください。キーをソース管理にコミットしたり、クライアントサイドのコードで公開したりしないでください。
Retry-Afterに従う:429レスポンスを受け取った場合は、すぐに再試行せず、Retry-Afterに従ってください。
連携チェックリスト
連携を本番環境に移行する前に、次の点を確認してください。- OAuth ベース URL がデータセンターと一致している。
- OAuth 2.0 API キーに、連携に必要な API アクセスが設定されている。
- アプリケーションが Workspace ID と API キーを安全に保管している。
- トークンエンドポイントがアクセストークンとリフレッシュトークンを返す。
- アクセストークンを使用した Public API の呼び出しが成功する。
- アプリケーションが
expires_inフィールドからトークンの有効期限を読み取っている。 - リフレッシュエンドポイントが新しいアクセストークンを返す。
- アプリケーションが、有効期限が切れる前にアクセストークンを更新している。
- アプリケーションが
refresh_token_expires_inを追跡し、少なくとも 24 時間に 1 回は更新している。 - 更新リクエストと API 呼び出しの両方で、
ER010のフォールバック処理がclient_idとclient_secretを使用して再認証する。 - アプリケーションが
429レスポンスのRetry-Afterに従っている。
関連記事
Generate Access Token
クライアントクレデンシャルグラントを使用して、アクセストークンとリフレッシュトークンをリクエストします。
Refresh Access Token
リフレッシュトークンを新しいアクセストークンと交換します。
API Key Dashboard
API キーの作成、スコープ設定、編集、再生成、アーカイブを行います。
API ドキュメント
MoEngage REST API 全体に適用されるデータセンター、ベース URL、認証方法、エラー処理を確認します。
サポートへのお問い合わせ
MoEngage サポートに、Workspace ID、呼び出したエンドポイント、リクエストの時刻 (UTC)、HTTP ステータス、レスポンスのerror_type または MOENGAGE-AUTH-ERROR-CODE を添えてお問い合わせください。チケットを作成するには、Raise a Support Ticket を参照してください。