認証
Marketoの REST API は、2-legged OAuth 2.0 で認証されます。クライアント ID とクライアント秘密鍵は、定義したカスタムサービスによって提供されます。 各カスタムサービスは、特定のアクションを実行するようにサービスを承認する一連の役割と権限を持つ API 専用ユーザーが所有しています。 アクセストークンは、1 つのカスタムサービスに関連付けられます。 アクセストークンの有効期限は、インスタンスに存在する他のカスタムサービスに関連付けられたトークンとは独立しています。
アクセストークンの作成
Client ID
と Client Secret
は、Admin/Integration/LaunchPoint メニューでカスタムサービスを選択し、「詳細を表示」をクリックします。
この Identity URL
は、「REST API」セクションの 管理者/統合/web サービス メニューにあります。
次のように、HTTP GET(またはPOST)リクエストを使用してアクセストークンを作成します。
GET <Identity URL>/oauth/token?grant_type=client_credentials&client_id=<Client Id>&client_secret=<Client Secret>
リクエストが有効な場合は、次のような JSON 応答が返されます。
{
"access_token": "cdf01657-110d-4155-99a7-f986b2ff13a0:int",
"token_type": "bearer",
"expires_in": 3599,
"scope": "apis@acmeinc.com"
}
応答定義
access_token
– その後の呼び出しで渡して、ターゲットインスタンスで認証するトークン。token_type
- OAuth 認証方法。expires_in
– 現在のトークンの残り存続期間(秒単位)(この時間を超えると無効になります)。 アクセストークンが最初に作成されたときの有効期間は 3600 秒または 1 時間です。scope
– 認証に使用されたカスタムサービスの所有ユーザー。
アクセストークンの使用
REST API メソッドを呼び出す場合は、呼び出しを正常に実行するために、すべての呼び出しにアクセストークンを含める必要があります。
アクセストークンは HTTP ヘッダーとして送信する必要があります。
Authorization: Bearer cdf01657-110d-4155-99a7-f986b2ff13a0:int
ヒントとベストプラクティス
アクセストークンの有効期限の管理は、統合がスムーズに動作し、通常の操作中に予期しない認証エラーが発生するのを防ぐために重要です。 統合の認証を設計する場合は、ID 応答に含まれるトークンと有効期限を必ず保存してください。
REST 呼び出しを行う前に、残りの存続期間に基づいてトークンの有効性を確認する必要があります。 トークンの有効期限が切れている場合は、Identity エンドポイントを呼び出して更新します。 これにより、トークンの有効期限が切れていることが原因で REST 呼び出しが失敗することがなくなります。 これにより、予測可能な方法で REST 呼び出しの待ち時間を管理できます。これは、エンドユーザーに接続するアプリケーションにとって重要です。
期限切れトークンを使用して REST 呼び出しを認証すると、REST 呼び出しは失敗し、602 エラーコードが返されます。 REST 呼び出しの認証に無効なトークンが使用されている場合は、601 エラーコードが返されます。 これらのコードのいずれかが受信された場合、クライアントは ID エンドポイントを呼び出してトークンを更新する必要があります。
トークンの有効期限が切れる前に ID エンドポイントを呼び出した場合、同じトークンと残りの存続期間が応答で返されます。
アクセストークンは、ユーザーベースではなく、カスタムサービスごとに所有されることに注意してください。 2 つの ID 応答が同じユーザーに対してスコープされている場合でも、2 つの異なるサービスの資格情報で作成されたアクセストークンと有効期限は互いに独立しています。 同じアプリケーションに複数の資格情報セットがある場合は、このことに注意してください。クライアント ID は、それらを個別に管理するための便利なキーです。