次世代プラットフォーム

イベントをサブスクライブするためのアウトバウンド Webhook の構成

Store Engagementをサブスクライブし、Webhookエンドポイントに公開することで、データの更新をリアルタイムで通知することができます。

注:ウェブフックに関連付けられたイベントメッセージのパージ期間は90日間です。

手順

  1. 以下のいずれかの許可プロトコルを使用して、Webhook エンドポイントをセットアップします。
    • OAuth
    • JWT。 RSA256 および HMAC256 のいずれかを使用します。
    注: Store Engagementは、自己署名証明書を使用する URL には接続しません。 したがって、 HTTPS および TLS をセキュアな Webhook としてホストする場合は、認証機関によって署名され、Java™ 11 JRE で受け入れられる証明書を使用する必要があります。
  2. POST /tenantId/v1/webhooksAPIを使用するには、'Create WebhookAPIを使用してWebhookを設定する。
    • 認証方法として OAuth を使用している場合は、次の例を参照してください:

      API 名: POST /tenantId/v1/webhooks

      API 要求ペイロード:
      {
        "url": "http://host:11500/example",
        "credentials": {
          "clientId": "client id, Required for `OAUTH` authentication",
          "clientSecret": "client secret, Required for `OAUTH` authentication",
          "oauthURL": "http://host:11500/oauthToken"
        },
        "authenticationType": "OAUTH"
      ここで、
      • url イベントメッセージを受信するためのURL を参照します。
      • clientId OAuth トークンを取得するために使用するクライアントIDを指します。
      • clientSecret OAuth トークンを取得するために使用するクライアントシークレットを指します。
      • oauthURL URL を指し、そこから OAuth トークンを取得します。
    • 認証方式として JWT を使用する場合は、以下の例を使用します。

      API 名: POST /tenantId/v1/webhooks

      API 要求ペイロード:
      {
        "url": "http://host:11500/example",
        "credentials": {
          "iss": "The issuer of the JWT. Required for `JWT` authentication",
          "sub": "The subject of the JWT. Required for `JWT` authentication",
          "privateKey": "The private key to sign the JWT. Required for RSA256 algorithm",
          "privateKeyId":"The private key ID",
          "algorithm": "The algorithm to use for signing the JWT. Required for `JWT` authentication, possible values are RSA256,HMAC256",
          "secret": "The secret to sign the JWT. Required for HMAC256 algorithm",
          "audience": "The recipients for whom the JWT is intended"
        },
        "authenticationType": "JWT"
      }

      ここで、

      • iss は JWT の発行者です。
      • sub は JWT のサブジェクトです。
      • privateKey は、JWT の暗号化に使用する秘密鍵です。
      • privateKeyId は、JWT の暗号化に使用する秘密鍵 ID です。
      • algorithm は、JWT を暗号化するために使用するアルゴリズムです。

        RSA256と HMAC256は、サポートされている唯一の2つの暗号化タイプである。

      • secret」は、使用されるアルゴリズムがHMAC256の場合、JWTに署名するための秘密である。
      • audience は、JWT のオーディエンスです。
  3. Sterling Store Engagementから Web フックに受信させるイベントをサブスクライブします。
    Create Event Subscription Association API を使用して、 POST /tenantId/v1/events/eventCode/subscription API を呼び出します。
    例えば、在庫調整イベントを購読するには、次のようにします
    POST  tenantId/v1/events/inventoryAdjustment/subscription
    API 要求ペイロード:
    {
        "webhooks": [
          "webhook_ID_1",
          "webhook_ID_2"
        ]
      }
  4. イベント・メッセージを取り出します。 診断のために、以前に公開されたイベント・メッセージを取得したい場合があります。 以下の例に示すように、 Get Event Messages for Event Code または Get Event Messages for Webhook を使用できます。
    • GET /tenantId/v1/events/eventCode/messages を使用して、特定の eventCodeのすべてのイベント・メッセージを取得します。 例えば、在庫調整のためにすべての eventMessages を取得するには、以下を使用します。
      GET  /tenantId/v1/events/inventoryAdjustment/messages
    • GET /tenantId/v1/events/eventCode/ messages?startDate=XXX&endDate=YYY を使用して、特定の期間にパブリッシュされた特定の eventCode のすべてのイベント・メッセージを取得します。 例えば、日付範囲内に公開された在庫調整のすべての eventMessages を取得するには、次のようにします。
      GET https://tenantId/v1/events/inventoryAdjustment/messages?startDate=1630510372&endDate=1631028483
      開始日と終了日は「epochMilli整数値で指定する。
    • GET /tenantId/v1/events/eventCode/webhook/webhookId/messages?&failedToSend=false を使用して、特定の eventCode および webhookIdに対して正常にパブリッシュされたすべてのイベント・メッセージを取得します。 例えば、ウェブフック「webhook_id」に正常に発行された在庫調整イベントのすべての「eventMessages取得するには、次のようにします
      GET tenantID/v1/events/inventoryAdjustment/webhook/webhook_id/messages?failedToSend=false