イベントをサブスクライブするためのアウトバウンド Webhook の構成
Store Engagementをサブスクライブし、Webhookエンドポイントに公開することで、データの更新をリアルタイムで通知することができます。
注:ウェブフックに関連付けられたイベントメッセージのパージ期間は90日間です。
手順
- 以下のいずれかの許可プロトコルを使用して、Webhook エンドポイントをセットアップします。
- OAuth
- JWT。 RSA256 および HMAC256 のいずれかを使用します。
注: Store Engagementは、自己署名証明書を使用する URL には接続しません。 したがって、 HTTPS および TLS をセキュアな Webhook としてホストする場合は、認証機関によって署名され、Java™ 11 JRE で受け入れられる証明書を使用する必要があります。 -
POST /tenantId/v1/webhooksAPIを使用するには、'Create WebhookAPIを使用してWebhookを設定する。- 認証方法として OAuth を使用している場合は、次の例を参照してください:
API 名:
POST /tenantId/v1/webhooksAPI 要求ペイロード:{ "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 を参照します。clientIdOAuth トークンを取得するために使用するクライアントIDを指します。clientSecretOAuth トークンを取得するために使用するクライアントシークレットを指します。oauthURLURL を指し、そこから OAuth トークンを取得します。
- 認証方式として JWT を使用する場合は、以下の例を使用します。
API 名:
POST /tenantId/v1/webhooksAPI 要求ペイロード:{ "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 のオーディエンスです。
- 認証方法として OAuth を使用している場合は、次の例を参照してください:
- Sterling Store Engagementから Web フックに受信させるイベントをサブスクライブします。
Create Event Subscription AssociationAPI を使用して、POST /tenantId/v1/events/eventCode/subscriptionAPI を呼び出します。例えば、在庫調整イベントを購読するには、次のようにしますPOST tenantId/v1/events/inventoryAdjustment/subscriptionAPI 要求ペイロード:{ "webhooks": [ "webhook_ID_1", "webhook_ID_2" ] } - イベント・メッセージを取り出します。 診断のために、以前に公開されたイベント・メッセージを取得したい場合があります。 以下の例に示すように、
Get Event Messages for Event CodeまたはGet Event Messages for Webhookを使用できます。GET /tenantId/v1/events/eventCode/messagesを使用して、特定のeventCodeのすべてのイベント・メッセージを取得します。 例えば、在庫調整のためにすべてのeventMessagesを取得するには、以下を使用します。GET /tenantId/v1/events/inventoryAdjustment/messagesGET /tenantId/v1/events/eventCode/ messages?startDate=XXX&endDate=YYYを使用して、特定の期間にパブリッシュされた特定のeventCodeのすべてのイベント・メッセージを取得します。 例えば、日付範囲内に公開された在庫調整のすべてのeventMessagesを取得するには、次のようにします。
開始日と終了日は「GET https://tenantId/v1/events/inventoryAdjustment/messages?startDate=1630510372&endDate=1631028483epochMilli整数値で指定する。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