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のバージョンによって実装されている機能が異なります。