Oracle Content ManagementのWebhookでOracle Integration Cloudを呼ぶ

# はじめに

この記事ではOracle Content ManagementのWebhookを利用してSiteが更新されたことをトリガにOracle Integration Cloud(OIC)の統合機能を呼び出す手順を説明します。今回は呼び出すだけの手順をまとめますが、このWebhookの機能を利用することでOCMが更新された際にOIC経由でメール通知をしたり、他のシステムへ連携したりすることができます。

- Oracle Integration Cloud Processについてはこちら
https://www.oracle.com/jp/integration/application-integration/

- Oracle Content Managementについてはこちら
https://www.oracle.com/jp/content-management/

# 前提

- OICのプロビジョニングおよびユーザー・ロール設定が完了していること
https://docs.oracle.com/ja-jp/iaas/integration/index.html

- OCMのプロビジョニングおよびユーザー・ロール設定が完了していること
https://docs.oracle.com/ja-jp/iaas/content-management/doc/deploy-oracle-content-management.html

# OIC - Integrationの作成

## Connectionの作成

OICでトリガ用のREST APIのAdapterを使ってConnectionを作成します。
OICコンソールのメニューから"Integrations"－"Connections"に遷移し、"Create"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/8496e223-3e5e-dd37-eff0-19edf1c5b392.png)

AdapterからRESTを選択し、"Select"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/e9c3325f-4a38-ee93-ed90-ca9d776d8406.png)

以下のように入力し、"Create"をクリックします。

項目|値
-|-
Name|任意の値
Identifer|任意の値(Nameを入力すると自動的に入力される)
Role|Trigger

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/34b35ff0-6f9e-ed36-5909-d9c3190ba7f5.png)

Security Policyを"Basic Authentication"に変更して"Save"します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/5c292c94-c6f6-23b4-5e11-3627e8702002.png)

これでREST AdapterのConnectionが定義できました。

## Integrationアプリケーションの作成

次に作成したREST AdapterのConnectionを使ってIntegrationフローを作成します。
OICコンソールのメニューから"Integrations"－"Integrations"に遷移し、"Create"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/86e1b76d-5756-6d44-eca7-fe5219e945b5.png)

"App Driven Orchestration"を選択して、"Select"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/f2fe9d0c-3d16-ce7c-e73e-7de77827bd8a.png)

Nameに任意の名前を入力して、"Create"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/ede1fce8-6c7b-4ed7-2674-1a3115a2b505.png)

STARTの"+"から先ほど定義したREST AdapterのConnectionを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/bbc49bd8-ec84-369d-1634-a3e6495cbb4d.png)

任意の名前を入力し、"Next"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/a067ae2e-3449-7e8a-c69f-e22cb05faa0e.png)


以下のように入力・選択し、"Next"をクリックします。
項目|値
-|-
What is the endpoint's relative resource URI|/任意の値
What action do you want to perform on the endpoint?|POST
Configure a request payload for this endpoint|チェック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/2bb89821-b3f9-2bd3-3c20-18fcd507aaff.png)

"Selected the request payload format"を"JSON Sample"に変更し、その下にある"<<< inline >>>"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/efe54c9c-5725-21e2-3acd-5dc6ebd27d0c.png)

JSONのサンプル入力を求められるので、以下のJSONサンプルを張り付けします。

```json
{
  "webhook" : {
    "id" : 1401,
    "name" : "site publish webhook oic process"
  },
  "event" : {
    "id" : "6a4674c0-0575-4df1-8cf9-45b611f67706",
    "name" : "SITE_PUBLISHED",
    "registeredAt" : "2023-07-20T05:11:18.084Z",
    "initiatedBy" : ""
  },
  "entity" : {
    "id" : "",
    "name" : "testsite",
    "action" : "publish"
  }
}
```

張り付けると以下のようになります。"Ok"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/4547d3c2-bdcf-d638-f135-74a293f4e70b.png)

"Next"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/65102b87-bc09-9484-3274-2a1e0187461f.png)

"Done"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/7de9d0be-fe94-d699-2cd7-7685fa777379.png)

次にTrackingを設定します。
右上のハンバーガーメニューから"Tracking"を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/68b88fe2-0ae4-7510-c73a-358dfc8fefed.png)

execute－request-wrapper－webhook－idをドラッグアンドドロップで右側のTracking Fieldに配置し、saveをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/a607f58e-7fa8-2dc8-1c11-d3984f4b6965.png)

ここまで出来たらSaveで保存して、Closeをクリックして閉じます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/06e31594-de4f-0875-72bd-9472165676b1.png)

これでWebhookから呼ばれるIntegrationの作成ができました。

# IntegrationのActivateとEndpoint URLの確認

一覧から先ほど作成したIntegrationの右側にあるActivateのアイコンをクリックしてアプリケーションをActive化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/d1751db7-613e-9e30-8c46-94b29fa0acd9.png)

表示されるダイアログはそのまま"Activate"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/10e26d1b-d84f-349d-c56b-2d1141685637.png)

"Run"のアイコンをクリックし、その下に表示されるMetadata URLをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/9dc0813a-f7a1-6cca-91b0-af225106d280.png)

表示された画面のEndpoint URLをコピーしておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/d985aa54-0e6f-aa3c-1b47-9841bc16a223.png)

# OCMのSiteの作成

次にWebhookのトリガ用のSiteを作成します。
OCMのコンソールからSiteを開き、"Create"をクリックします。
[こちら](https://oracle-japan.github.io/ocitutorials/content-management/#web%E3%82%B5%E3%82%A4%E3%83%88%E7%AE%A1%E7%90%86)を参考に適当なSiteを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/fbe0fc11-9e60-cbb4-8e5f-e6783806b27a.png)

# OCMの設定

次はWebhookの設定をします。
OCMコンソールの左のメニューからIntegrationsを開き、上のプルダウンを"Webhooks"に変更します。
"Create"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/cab81e14-ff10-640c-1c1d-edbf6f24dfee.png)

"Site Publishing Webhook"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/4dd5e3cf-18dd-30eb-da00-2369d475ee8e.png)

以下の項目を入力します。

項目|値
-|-
Name|任意の名前
Site Type|作成したSiteのタイプ
Site Name|作成したSiteの名前
Events|All current and future events
Target URL|コピーしたOICのエンドポイントURL

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/be45aa54-6c33-ee23-7173-b8e096146c09.png)

Authenticationを"Basic"に変更し、"Details"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/1e7adc60-5e3a-a0d7-2a84-028e2eba0445.png)

User NameとPasswordを入力し、"Save"をクリックします。
このUser NameとPasswordは利用しているIDPのものです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/d92cf26e-4534-fca3-e44a-12280252ed44.png)

右上にある"Save"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/7574c434-258e-f026-371b-14a9d7b21d8a.png)

# 動作確認

最後に動作確認を行います。
自身で作成したSiteを適当に更新し、Publishを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/3c0722c1-82c2-dc93-0925-5c53a71c1846.png)

(省略)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/0d3b61e6-90f1-42d4-0463-0f70d5ebd464.png)

OCMのメニュー－Integrationsから先ほど定義したWebhookを選択し、Event Logタブを開くとWebhookの実行ログが確認できます。正常に実行されていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/8317cb33-0937-e5b4-cba7-fd724c8c74f1.png)

最後にWebhookからよばれたIntegrationをOICコンソールから確認します。
OICコンソールからMonitoring－Integrations－Trackingに遷移するとWebhookで呼ばれたIntegrationアプリケーションが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/7cd1bba2-83b3-f6ea-a8d1-93a9942f4b7a.png)

このようにOCMはWebhookの機能があり、Site・Assetなどの更新をトリガにして設定したWebhookを呼び出すことができます。OICを呼び出し先に指定することで作成したIntegrationから通知を出したり、他のシステムと連携させたりすることが可能になります。