WebhookEventHandlerとは
WebhookEventHandlerはSitecore10.3で追加された機能で、Sitecoreイベントがトリガーされた際に外部APIを呼び出すことができる機能です。
この機能はXM及びXMCloudで使用することができます。
デモ
Webhookアイテムの作成
以下の手順でアイテムを作成します。
①/sitecore/system/Webhooksで右クリックする。
②「Webhok Event Handler」テンプレートでアイテムを作成する。
フィールド設定
Eventsフィールド
EventsフィールドではWebhookをトリガーするイベントを指定することができます。
トリガーするイベントは複数設定することができるので、例えば「アイテムを作成した」「アイテムを保存した」タイミングで同じWebhookをトリガーできます。
トリガーできるイベント
|
item_added |
item_cloneAdded |
item_copied |
item_deleted |
item_deleting |
item_locked |
item_moved |
item_renamed |
item_saved |
item_sortorderChanged |
item_templateChanged |
item_unlocked |
item_versionAdded |
item_versionRemoved |
publish_begin |
publish_end |
publish_fail |
publish_statusUpdated |
Ruleフィールド
RuleフィールドではWebhookをトリガーする条件を指定することができます。
このフィールドでルールを指定することで、例えば「特定のテンプレートのアイテムのみを作成した」など特定の条件下でのみWebhookをトリガーすることができます。
Urlフィールド
このフィールドではトリガーするエンドポイントを指定します。
リクエスト
SitecoreEventWebhookでリクエストされた通信にはトリガーされたアイテム情報やトリガー種別などが送信されます。
このペイロードを取得することでWebhookによりトリガーされたAPIでアイテム情報などを取り扱うことができます。
以下が実際に送信されたペイロードになります。
{
EventName: 'item:saved',
Item: {
Language: 'en',
Version: 1,
Id: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
Name: 'WebhookTest2',
ParentId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
TemplateId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
TemplateName: 'Sample Item',
MasterId: '00000000-0000-0000-0000-000000000000',
SharedFields: [ [Object], [Object] ],
UnversionedFields: [],
VersionedFields: [
[Object], [Object],
[Object], [Object],
[Object], [Object],
[Object], [Object]
]
},
Changes: {
FieldChanges: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
PropertyChanges: [],
IsUnversionedFieldChanged: false,
IsSharedFieldChanged: true
},
WebhookItemId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
WebhookItemName: 'sample'
}
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。