Webhook
Web フックは、イベントによってトリガーされる HTTP 呼び出しです。 Web フックを使用して、インスタントトリガーモジュールをアクティベートできます。 インターネットに接続しており、HTTP リクエストを許可するアプリケーションは、Adobe Workfront Fusion に web フックを送信できます。
アクセス要件
| table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header | |
|---|---|
| Adobe Workfront パッケージ |
任意の Adobe Workfront Workflow パッケージと任意の Adobe Workfront Automation および Integration パッケージ Workfront Ultimate Workfront Fusion を追加購入した Workfront Prime および Select パッケージ。 |
| Adobe Workfront ライセンス |
標準 Work またはそれ以上 |
| Adobe Workfront Fusion ライセンス |
オペレーションベース:Workfront Fusion ライセンス要件なし コネクターベース(レガシー):Workfront Fusion for Work Automation および Integration |
| 製品 | 組織が Workfront Automation および Integration を含まない Select またはPrime Workfront パッケージを持っている場合は、Adobe Workfront Fusion を購入する必要があります。 |
この表の情報について詳しくは、ドキュメントのアクセス要件を参照してください。
Adobe Workfront Fusion ライセンスについて詳しくは、Adobe Workfront Fusion ライセンスを参照してください。
Workfront FusionでのWebhookの使用
Webhookを使用してアプリをWorkfront Fusionに接続するには、クライアント証明書(mTLS)、基本認証、またはAdobe Identity Management System (IMS)を使用して認証するようにWebhookを設定できます。
クライアント証明書(mTLS)を使用したWebhookの使用
mTLSでは、クライアント証明書と秘密鍵を指定します。 Fusionは、Webhookを呼び出す際に、証明書とキーを使用して宛先サービスに対する認証を行います。 この双方向認証により、Webhookは基本認証よりも安全になります。
mTLSについて詳しくは、相互TLSの概要を参照してください。「HTTP モジュールでのmTLSの使用」の記事を参照してください。
-
Webhook > カスタム Webhook インスタントトリガーモジュールをシナリオに追加します。
-
Web フックフィールドの横にある「追加」をクリックして、新規 web フックの名前を入力します。
-
(オプション)「詳細設定」をクリックします。
-
IP 制限フィールドに、モジュールがデータを受け入れることができる IP アドレスのカンマ区切りのリストを入力します。
-
(オプション)このWebhookの呼び出しを許可する各オリジンの「オリジン制限」フィールドで、「項目を追加」をクリックし、オリジンのパターンを入力します。 任意のオリジンを許可する場合は、このフィールドを空白のままにします。
このフィールドでは、次のパターンを使用できます。
- 正確なホスト名:
app.example.com - ワイルドカードサブドメイン:
*.example.com - Scheme-qualified:
https://app.example.comまたはhttps://*.example.com
- 正確なホスト名:
-
受信データを検証する場合は、データ構造 フィールドで、使用するデータ構造を選択または追加します。
データ構造について詳しくは、 データ構造を参照してください。
-
「認証タイプ」フィールドで、「クライアント証明書」を選択します。
-
資格情報 フィールドで、認証に使用する資格情報を選択するか、新しい資格情報を追加します。
-
(条件付き)資格情報を追加するには:
-
「追加」をクリック
-
新しい資格情報キーの名前を入力
-
「証明書」フィールドに、証明書を貼り付けます。
-
「秘密鍵」フィールドに、秘密鍵を貼り付けます。
note tip TIP 結合されたファイルから証明書または秘密鍵を抽出する必要がある場合は、そのフィールドの横にある Extract をクリックし、抽出するファイルとパスワードを指定します。 -
「キーを作成」をクリックします。
-
Webhook パネルの資格情報 フィールドで、新しいキーを選択します。
-
-
必要に応じて他の設定を有効にします。
-
「保存」をクリックします。
Web フックを作成すると、一意の URL が表示されます。 これは、web フックがデータを送信するアドレスです。 Workfront Fusion は、このアドレスに送信されたデータを検証し、そのデータをシナリオでの処理に渡します。
基本認証でのWebhookの使用
基本認証では、ユーザー名とパスワードを使用して、接続先のサービスに対する認証を行います。
-
Webhook > カスタム Webhook インスタントトリガーモジュールをシナリオに追加します。
-
Web フックフィールドの横にある「追加」をクリックして、新規 web フックの名前を入力します。
-
(オプション)「詳細設定」をクリックします。
-
IP 制限フィールドに、モジュールがデータを受け入れることができる IP アドレスのカンマ区切りのリストを入力します。
-
(オプション)このWebhookの呼び出しを許可する各オリジンの「オリジン制限」フィールドで、「項目を追加」をクリックし、オリジンのパターンを入力します。 任意のオリジンを許可する場合は、このフィールドを空白のままにします。
このフィールドでは、次のパターンを使用できます。
- 正確なホスト名:
app.example.com - ワイルドカードサブドメイン:
*.example.com - Scheme-qualified:
https://app.example.comまたはhttps://*.example.com
- 正確なホスト名:
-
受信データを検証する場合は、データ構造 フィールドで、使用するデータ構造を選択または追加します。
データ構造について詳しくは、 データ構造を参照してください。
-
認証タイプ フィールドで、基本認証を選択します。
-
「資格情報」フィールドに、認証に使用する資格情報を入力します。 資格情報を入力するには、Addをクリックし、基本認証のユーザー名とパスワードを入力します。
-
必要に応じて他の設定を有効にします。
-
「保存」をクリックします。
Web フックを作成すると、一意の URL が表示されます。 これは、web フックがデータを送信するアドレスです。 Workfront Fusion は、このアドレスに送信されたデータを検証し、そのデータをシナリオでの処理に渡します。
Adobe Identity Management System (IMS)でのWebhookの使用
Adobe Identity Management System (IMS)認証では、組織のAdobe IMS資格情報を使用して、接続先のサービスに対する認証を行います。
-
Webhook > カスタム Webhook インスタントトリガーモジュールをシナリオに追加します。
-
Web フックフィールドの横にある「追加」をクリックして、新規 web フックの名前を入力します。
-
(オプション)「詳細設定」をクリックします。
-
IP 制限フィールドに、モジュールがデータを受け入れることができる IP アドレスのカンマ区切りのリストを入力します。
-
(オプション)このWebhookの呼び出しを許可する各オリジンの「オリジン制限」フィールドで、「項目を追加」をクリックし、オリジンのパターンを入力します。 任意のオリジンを許可する場合は、このフィールドを空白のままにします。
このフィールドでは、次のパターンを使用できます。
- 正確なホスト名:
app.example.com - ワイルドカードサブドメイン:
*.example.com - Scheme-qualified:
https://app.example.comまたはhttps://*.example.com
- 正確なホスト名:
-
受信データを検証する場合は、データ構造 フィールドで、使用するデータ構造を選択または追加します。
データ構造について詳しくは、 データ構造を参照してください。
-
「Authorization type」フィールドで、「Adobe IMS(Authorization headerのBearer token)」を選択します。
-
(オプション)「許可されたクライアント」フィールドに、このWebhookの呼び出しを許可されたクライアント IDのコンマ区切りリストを入力します。 この設定を空のままにすると、信頼できる発行者とオーディエンスによってトークンが有効に署名されているクライアントを受け入れることができます。
-
(オプション)「許可されたユーザー」フィールドに、このWebhookの呼び出しを許可されたユーザーIDのコンマ区切りリストを入力します。 任意のユーザーを許可するには、この設定を空のままにします。
-
(オプション)「必須スコープ」フィールドに、トークンの
scope要求に存在する必要があるスコープのコンマ区切りリストを入力します。 スコープチェックをスキップするには、これを空のままにします。 -
必要に応じて他の設定を有効にします。
-
「保存」をクリックします。
Web フックを作成すると、一意の URL が表示されます。 これは、web フックがデータを送信するアドレスです。 Workfront Fusion は、このアドレスに送信されたデータを検証し、そのデータをシナリオでの処理に渡します。
Web フックのデータ構造を設定 configure-the-webhook-s-data-structure
受信ペイロードのデータ構造を認識するために、Workfront Fusionは、表示されたアドレスに送信するサンプルデータを解析します。 サンプルデータを指定するには、そのサービスまたはアプリを変更して、サービスまたはアプリが web フックを呼び出すようにします。 例えば、ファイルを削除できます。
または、HTTP > リクエストを作成 モジュールを介してサンプルデータを送信できます。
-
HTTP/リクエストを実行モジュールを使用して、新しいシナリオを作成します。
-
次の値を使用してモジュールを設定します。
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 layout-auto html-authored no-header URL Web フックの URL を入力します。 この URL は、web フックの設定に使用した Webhooks モジュールに含まれています。 Method POST Body type Raw Content type JSON(application/json) Request content Web フックには生の JSON が必要です。
-
別のブラウザーのタブまたはウィンドウで、Webhooks モジュールを使用してシナリオを開きます。
-
Webhooks モジュールで、「データ構造を再決定」をクリックします。
Webhooks モジュールから他のモジュールのリンクを解除する必要はありません。
-
HTTP モジュールを使用してシナリオに切り替え、実行します。
-
Webhooks モジュールを使用してシナリオに戻ります。
「正常に決定されました」というメッセージは、モジュールがデータ構造を正常に決定したことを意味します。
-
「OK」をクリックして、データ構造を保存します。
これで、web フックの項目がマッピングパネルに表示され、シナリオの後続モジュールで使用できるようになりました。
許可されたオリジン / CORS
Fusionでカスタム Webhookを作成または編集する際に、「許可されたオリジン」フィールドを使用すると、どのブラウザーオリジン(web サイト)がクライアントサイド JavaScriptから直接Webhook エンドポイント(fetch/XHRなど)を呼び出すことができるかを制限できます。 これはCORS (Cross-Origin Resource Sharing)コントロールで、IP制限とは別に、認証タイプ(基本認証/クライアント証明書/Adobe IMS)とは別の境界です。
Webhook キュー
Web フックがデータを受け取り、そのデータを期待するアクティブなシナリオがない場合、データはキューに格納されます。 シナリオをアクティベートすると、キューで待機しているすべてのバンドルが順番に処理されます。
サポートされる受信データ形式
Workfront Fusionでは、次の3つのデータ形式がサポートされています。 クエリ文字列、 フォームデータ 、JSON。
Workfront Fusionは、すべての受信データを選択したデータ構造に対して検証します。 次に、シナリオの設定に応じて、データは処理用のキューに格納されるか、すぐに処理されます。
データのいずれかの部分が検証に合格しない場合、Workfront Fusionは400 HTTP ステータスコードを返し、HTTP レスポンスの本文で、受信データが検証チェックに失敗した理由を指定します。 受信データの検証が成功した場合、Workfront Fusion は「200 受理」ステータスを返します。
クエリ文字列
GET https://app.workfrontfusion.com/wh/<yourunique32characterslongstring>?name=<yourname>&job=automate
フォームデータ
POST https://app.workfrontfusion.com/wh/<yourunique32characterslongstring>
Content-Type: application/x-www-form-urlencoded
name=<yourname>&job=automate
マルチパートフォームデータ
POST https://app.workfrontfusion.com/wh/<yourunique32characterslongstring>
Content-Type: multipart/form-data; boundary=---generatedboundary
---generatedboundary
Content-Disposition: form-data; name="file"; filename="file.txt"
Content-Type: text/plain
Content of file.txt
---generatedboundary
Content-Disposition: form-data; name="name"
Workfront Fusion
---generatedboundary
multipart/form-data でエンコードされたファイルを受信するには、ネストされたフィールド name、mime、data を含む collection タイプのフィールドを使用してデータ構造を設定する必要があります。 フィールド name は text タイプで、アップロードされたファイルの名前が含まれます。 mime は text タイプで、MIME 形式のファイルが含まれます。 フィールド data は buffer タイプで、転送中のファイルのバイナリデータが含まれます。
MIME 形式について詳しくは、MIME モジュールを参照してください。
JSON
POST https://app.workfrontfusion.com/wh/<yourunique32characterslongstring>
Content-Type: application/json
{"name": "Workfront Fusion", "job": "automate"}
- 「追加」をクリックして、新しい web フックを追加します。
- 「詳細設定を表示」をクリックします。
- 「JSON パススルー」をクリックします。
Web フックヘッダー
Web フックのヘッダーにアクセスするには、web フックの設定時に GET リクエストヘッダーを有効にします。
- 「追加」をクリックして、新しい web フックを追加します。
- 「詳細設定を表示」をクリックします。
- 「リクエストヘッダーを取得」をクリックします。
map() 関数と get() 関数を組み合わせて、特定のヘッダー値を抽出することができます。
Headers[] 配列から authorization ヘッダーの値を抽出する式を示しています。 この式は、抽出された値と指定されたテキストを比較し、一致する場合に web フックのみを渡すフィルターで使用されます。
Web フックへの応答
Web フック呼び出しに対するデフォルトの応答は、「受理」というテキストです。 応答は、カスタム web フックモジュールの実行中に web フックを呼び出したアプリに返されます。
Web フックへの応答をテスト
-
カスタム web フックモジュールを含めます。
-
モジュールに新しい web フックを追加します。
-
Web フックの URL をクリップボードにコピーします。
-
シナリオを実行します。
カスタム web フックモジュールの稲妻アイコンが回転する点に変わります。 これは、モジュールが web フック呼び出しを待機していることを示しています。
-
新しいブラウザーウィンドウを開き、コピーした URL をアドレスバーにペーストして、Enter キーを押します。
カスタム web フックモジュールがトリガーされ、ブラウザーに新しいページが表示されます。
Web フックの応答をカスタマイズする場合は、web フックの応答モジュールを使用します。
モジュールの設定には、ステータスおよび本文の 2 つのフィールドが含まれます。
-
ステータスフィールドには、成功の 2xx(OK の
200など)、リダイレクトの 3xx(一時リダイレクトの307など)、4xx のクライアントエラー(例えば、無効なリクエストの400)などの HTTP 応答ステータスコードが含まれます。 -
本文フィールドには、web フックの呼び出しで受け入れられるすべてが含まれます。 シンプルなテキスト、HTML、XML、JSON などが含まれます。
note tip TIP Content-Typeヘッダーを対応する MIME タイプに設定することをお勧めします。プレーンテキストの場合はtext/plain、HTMLの場合はtext/html、JSON の場合はapplication/json、XML の場合はapplication/xmlなどです。 MIME タイプについて詳しくは、MIME モジュールを参照してください。
応答を送信するためのタイムアウトは5分です。 その期間内に応答が利用できない場合、Workfront Fusion は「200 受理」ステータスを返します。
HTML 応答の例
| table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header | |
|---|---|
| Status | 2xx 成功 HTTP ステータスコード(例:200) |
| Body | HTML コード |
| Custom headers |
>
|
リダイレクトの例
| table 0-row-2 1-row-2 layout-auto html-authored no-header | |
|---|---|
| Status | 3xx リダイレクト HTTP ステータスコード(例:303) |
| Custom headers |
>
|
Webhook の無効化
次のいずれかに該当する場合、Web フックは自動的に非アクティブ化されます。
- Web フックが 6 日以上どのシナリオにも接続されていない
- Web フックが、非アクティブなシナリオ(非アクティブになってから 30 日を超えたシナリオ)でのみ使用される。
非アクティブ化された web フックは、いかなるシナリオにも接続されておらず、非アクティブ状態となって 30 日が経過した場合、自動的に削除され、登録解除されます。
トラブルシューティング
マッピングパネルに項目がありません
Web フック/カスタム web フックモジュールに続くモジュールの設定でマッピングパネルに一部の項目が欠落している場合は、Web フック/カスタム web フックモジュールを選択して設定を開き、「データ構造を再決定」をクリックします。
次に、この記事の web フックのデータ構造の設定の節で説明されている手順に従います。