Webhook

webhook是由事件觸發的HTTP呼叫。 您可以使用Webhook來啟動即時觸發程式模組。 任何連線至網際網路並允許HTTP請求的應用程式都可以將Webhook傳送至Adobe Workfront Fusion。

存取權要求

展開以檢視這篇文章中所述功能的存取權要求。
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 and Integration 封裝

Workfront Ultimate

Workfront Prime 和 Select 封裝,以及額外購買的 Workfront Fusion。

Adobe Workfront 授權

標準

工作或更高層級

Adobe Workfront Fusion 授權

作業型:適用於擁有作業型授權的組織

連接器型 (舊版):Workfront Fusion for Work Automation and Integration

產品 如果您的組織擁有 Select 或 Prime Workfront 封裝,但不包括 Workfront Automation and Integration,則您的組織必須購買 Adobe Workfront Fusion。

若要詳細了解此表格中的資訊,請參閱🔗文件中的存取權要求。

關於 Adobe Workfront Fusion 授權的資訊,請參閱 Adobe Workfront Fusion 授權

在Workfront Fusion中使用webhook

NOTE
若要呼叫第三方webhook (傳出webhook),請使用其中一個HTTP模組。 如需詳細資訊,請參閱HTTP模組

若要使用webhook將應用程式連線至Workfront Fusion,您可以設定webhook使用使用者端憑證(mTLS)、基本驗證、Adobe Identity Management System (IMS)、API金鑰或HMAC簽章進行驗證。

NOTE
API金鑰驗證現在是新Webhook的預設授權型別。 以前不會預先選取任何授權。 您仍然可以將webhook的Authorization型別變更為任何其他型別,或選取空白值以不授權。

設定webhook

搭配使用者端憑證(mTLS)使用webhook

若使用mTLS,您可以提供使用者端憑證和私密金鑰。 Fusion在呼叫webhook時使用憑證和金鑰向目的地服務驗證自身。 此雙向驗證可讓您的webhook比基本驗證更安全。

如需mTLS的詳細資訊,請參閱「在HTTP模組中使用mTLS」一文中的雙向TLS概觀

  1. 將​Webhook > 自訂Webhook​即時觸發模組新增至您的情境。

  2. 按一下Webhook欄位旁的​新增,然後輸入新webhook的名稱。

  3. (選擇性)按一下​進階設定

  4. 在​ IP限制 ​欄位中,輸入模組可以接受資料的IP位址清單(以逗號分隔)。

  5. (選擇性)在​ 允許的原始項 ​欄位中,針對您想要允許呼叫此webhook的每個原始項,按一下​ 新增專案 ​並輸入原始模式。 如果您想要允許任何來源,請將此欄位留空。

    此欄位接受以下模式:

    • 確切的主機名稱: app.example.com
    • 萬用字元子網域: *.example.com
    • 符合配置資格: https://app.example.comhttps://*.example.com
  6. 如果您要驗證傳入的資料,請在​ 資料結構 ​欄位中,選取或新增您要使用的資料結構。

    如需資料結構的詳細資訊,請參閱資料結構

  7. 在​ 授權型別 ​欄位中,選取​使用者端憑證

  8. 在​ 認證 ​欄位中,選取要用於授權的認證,或新增認證。

  9. (視條件而定)若要新增認證:

    1. 按一下​新增

    2. 輸入新認證金鑰的名稱

    3. 在​ 憑證 ​欄位中,貼上您的憑證。

    4. 在​ 私密金鑰 ​欄位貼上您的私密金鑰。

      note tip
      TIP
      如果您需要從合併的檔案中擷取憑證或私密金鑰,請按一下該欄位旁的​擷取,選取您要擷取的內容,並提供檔案和密碼。
    5. 按一下​建立金鑰

    6. 返回webhook面板,在​ 認證 ​欄位中選取新金鑰。

  10. 視需要啟用其他設定。

  11. 按一下​儲存

建立webhook之後,會顯示唯一的URL。 這是webhook傳送資料的地址。 Workfront Fusion會驗證傳送到此位址的資料,然後傳遞它以用於案例中的處理。

NOTE
建立webhook後,您可以一次用於多個情境。

搭配基本驗證使用webhook

基本驗證會使用使用者名稱和密碼來驗證您所連線的服務。

  1. 將​Webhook > 自訂Webhook​即時觸發模組新增至您的情境。

  2. 按一下Webhook欄位旁的​新增,然後輸入新webhook的名稱。

  3. (選擇性)按一下​進階設定

  4. 在​ IP限制 ​欄位中,輸入模組可以接受資料的IP位址清單(以逗號分隔)。

  5. (選擇性)在​ 允許的原始項 ​欄位中,針對您想要允許呼叫此webhook的每個原始項,按一下​ 新增專案 ​並輸入原始模式。 如果您想要允許任何來源,請將此欄位留空。

    此欄位接受以下模式:

    • 確切的主機名稱: app.example.com
    • 萬用字元子網域: *.example.com
    • 符合配置資格: https://app.example.comhttps://*.example.com
  6. 如果您要驗證傳入的資料,請在​ 資料結構 ​欄位中,選取或新增您要使用的資料結構。

    如需資料結構的詳細資訊,請參閱資料結構

  7. 在​ 授權型別 ​欄位中,選取​基本驗證

  8. 在​ 認證 ​欄位中,輸入要用於授權的認證。 若要輸入認證,請按一下​新增,然後輸入基本驗證的使用者名稱和密碼。

  9. 視需要啟用其他設定。

  10. 按一下​儲存

建立webhook之後,會顯示唯一的URL。 這是webhook傳送資料的地址。 Workfront Fusion會驗證傳送到此位址的資料,然後傳遞它以用於案例中的處理。

NOTE
建立webhook後,您可以一次用於多個情境。

搭配Adobe Identity Management System (IMS)使用webhook

Adobe Identity Management系統(IMS)驗證會使用您組織的Adobe IMS憑證,以驗證您連線的服務。

  1. 將​Webhook > 自訂Webhook​即時觸發模組新增至您的情境。

  2. 按一下Webhook欄位旁的​新增,然後輸入新webhook的名稱。

  3. (選擇性)按一下​進階設定

  4. 在​ IP限制 ​欄位中,輸入模組可以接受資料的IP位址清單(以逗號分隔)。

  5. (選擇性)在​ 允許的原始項 ​欄位中,針對您想要允許呼叫此webhook的每個原始項,按一下​ 新增專案 ​並輸入原始模式。 如果您想要允許任何來源,請將此欄位留空。

    此欄位接受以下模式:

    • 確切的主機名稱: app.example.com
    • 萬用字元子網域: *.example.com
    • 符合配置資格: https://app.example.comhttps://*.example.com
  6. 如果您要驗證傳入的資料,請在​ 資料結構 ​欄位中,選取或新增您要使用的資料結構。

    如需資料結構的詳細資訊,請參閱資料結構

  7. 在​ 授權型別 ​欄位中,選取​Adobe IMS (授權標頭中的持有人權杖)

  8. (選擇性)在​ 允許的使用者端 ​欄位中,輸入允許呼叫此webhook的使用者端ID的逗號分隔清單。 將此設定留空以接受任何由受信任的簽發者和對象有效簽署權杖的使用者端。

  9. (選擇性)在​ 允許的使用者 ​欄位中,輸入允許呼叫此webhook的使用者ID清單(以逗號分隔)。 將此設定留空以允許任何使用者。

  10. (選擇性)在​ 必要的範圍 ​欄位中,輸入必須在權杖的scope宣告中存在的範圍清單(以逗號分隔)。 留空將略過範圍檢查。

  11. 視需要啟用其他設定。

  12. 按一下​儲存

建立webhook之後,會顯示唯一的URL。 這是webhook傳送資料的地址。 Workfront Fusion會驗證傳送到此位址的資料,然後傳遞它以用於案例中的處理。

NOTE
建立webhook後,您可以一次用於多個情境。

使用具有API金鑰驗證的webhook

API金鑰驗證使用單一金鑰保護webhook端點,以請求標頭或查詢引數的形式傳送。 這是新Webhook的預設授權型別。

  1. 將​Webhook > 自訂Webhook​即時觸發模組新增至您的情境。

  2. 按一下Webhook欄位旁的​新增,然後輸入新webhook的名稱。

  3. (選擇性)按一下​進階設定

  4. 在​ IP限制 ​欄位中,輸入模組可以接受資料的IP位址清單(以逗號分隔)。

  5. (選擇性)在​ 允許的原始項 ​欄位中,針對您想要允許呼叫此webhook的每個原始項,按一下​ 新增專案 ​並輸入原始模式。 如果您想要允許任何來源,請將此欄位留空。

    此欄位接受以下模式:

    • 確切的主機名稱: app.example.com
    • 萬用字元子網域: *.example.com
    • 符合配置資格: https://app.example.comhttps://*.example.com
  6. 如果您要驗證傳入的資料,請在​ 資料結構 ​欄位中,選取或新增您要使用的資料結構。

    如需資料結構的詳細資訊,請參閱資料結構

  7. 在​ 授權型別 ​欄位中,選取​API金鑰驗證 (如果尚未選取)。

  8. 在​ 金鑰 ​欄位中,選取要用於授權的API金鑰,或按一下​ 新增 ​並輸入新認證來新增新的API金鑰:

    1. 輸入新認證金鑰的名稱。
    2. 在​ 金鑰 ​欄位中,輸入您要驗證的金鑰值。 使用欄位旁的眼睛圖示,在輸入時顯示或隱藏欄位。
    3. 在​ API金鑰位置 ​欄位中,選取金鑰是在標頭中傳送還是作為查詢引數傳送。
    4. 在​ API金鑰引數名稱 ​欄位中,輸入金鑰傳送所在的標頭或查詢引數名稱,例如X-API-Key
    5. 按一下​建立金鑰
    6. 返回webhook面板,在​ 認證 ​欄位中選取新金鑰。
  9. 視需要啟用其他設定。

  10. 按一下​儲存

建立webhook之後,會顯示唯一的URL。 這是webhook傳送資料的地址。 Workfront Fusion會驗證傳送到此位址的資料,然後傳遞它以用於案例中的處理。

NOTE
建立webhook後,您可以一次用於多個情境。

使用webhook搭配HMAC簽章驗證

HMAC簽名驗證會驗證傳入的請求是否使用共用的簽署密碼簽署,防止竄改和詐騙呼叫,而不會在每次請求時都傳送密碼本身。

  1. 將​Webhook > 自訂Webhook​即時觸發模組新增至您的情境。

  2. 按一下Webhook欄位旁的​新增,然後輸入新webhook的名稱。

  3. (選擇性)按一下​進階設定

  4. 在​ IP限制 ​欄位中,輸入模組可以接受資料的IP位址清單(以逗號分隔)。

  5. (選擇性)在​ 允許的原始項 ​欄位中,針對您想要允許呼叫此webhook的每個原始項,按一下​ 新增專案 ​並輸入原始模式。 如果您想要允許任何來源,請將此欄位留空。

    此欄位接受以下模式:

    • 確切的主機名稱: app.example.com
    • 萬用字元子網域: *.example.com
    • 符合配置資格: https://app.example.comhttps://*.example.com
  6. 如果您要驗證傳入的資料,請在​ 資料結構 ​欄位中,選取或新增您要使用的資料結構。

    如需資料結構的詳細資訊,請參閱資料結構

  7. 在​ 授權型別 ​欄位中,選取​HMAC簽章

  8. 在​ key ​欄位中,選取要用於授權的簽章,或按一下​ 新增 ​並輸入新認證,以新增簽章。

    1. 輸入新認證金鑰的名稱。
    2. 在​ 簽署密碼 ​欄位中,輸入您要使用的共用密碼。 使用欄位旁的眼睛圖示,在輸入時顯示或隱藏欄位。
    3. 在​ 演演算法 ​欄位中,選取要使用的雜湊演演算法,例如SHA-256。
    4. 在​ 簽章標頭 ​欄位中,輸入從中讀取簽章的標頭名稱,例如x-fusion-signature-256
    5. 在​ 簽章編碼 ​欄位中,選取簽章值的編碼,例如十六進位。
    6. (選擇性)在​ 簽章前置詞 ​欄位中,如果簽章值必須加上前置詞,請輸入前置詞,例如sha256=
    7. 按一下​建立金鑰
    8. 返回webhook面板,在​ 認證 ​欄位中選取新金鑰。
  9. 視需要啟用其他設定。

  10. 按一下​儲存

建立webhook之後,會顯示唯一的URL。 這是webhook傳送資料的地址。 Workfront Fusion會驗證傳送到此位址的資料,然後傳遞它以用於案例中的處理。

NOTE
建立webhook後,您可以一次用於多個情境。

設定webhook的資料結構 configure-the-webhook-s-data-structure

為了識別傳入裝載的資料結構,Workfront Fusion會剖析您傳送至顯示位址的範例資料。 您可以變更服務或應用程式,讓該服務或應用程式呼叫webhook,以提供範例資料。 例如,您可以移除檔案。

或者,您可以透過HTTP > 提出要求模組傳送範例資料:

  1. 使用​HTTP > 提出要求​模組建立新情境

  2. 使用下列值設定模組:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 layout-auto html-authored no-header
    URL 輸入webhook的URL。 您可以在用來設定webhook的Webhooks模組中找到此URL。
    方法 POST
    主體型別 Raw
    內容型別 JSON (application/json)
    要求內容 webhook中需要原始JSON

    新畫面設定

  3. 在單獨的瀏覽器標籤或視窗中開啟具有Webhooks模組的情境。

  4. 在webhooks模組中,按一下​重新決定資料結構

    您不需要從webhooks模組取消連結其他模組。

  5. 切換至具有HTTP模組的情境並執行它。

  6. 切換回使用Webhooks模組的情境。

    「已成功判定」訊息表示模組已成功判定資料結構。

    已成功判定

  7. 按一下​ 確定 ​以儲存資料結構。

    webhook的專案現在可以在對應面板中使用,以便與案例中的後續模組一起使用。

允許的來源/ CORS

在Fusion中建立或編輯自訂webhook時,「允許的原始項」欄位可讓您限制允許哪些瀏覽器原始項(網站)直接從使用者端JavaScript呼叫webhook端點,例如fetch/XHR。 這是CORS (跨原始資源共用)控制項,這是與IP限制和授權型別(基本驗證/使用者端憑證/Adobe IMS)分開的界限。

webhook佇列

如果webhook收到資料,而且沒有作用中案例需要該資料,則資料會儲存在佇列中。 啟用情境後,它會依序處理佇列中等待的所有組合。

IMPORTANT
Webhook佇列在使用相同webhook的情境之間共用。 如果其中一個案例已停用,所有傳入資料都會保留在佇列中。

支援的傳入資料格式

Workfront Fusion支援3種傳入資料格式: 查詢字串、表單資料和JSON。

Workfront Fusion會根據選取的資料結構驗證所有傳入的資料。 然後,根據情境的設定,資料會儲存在佇列中以供處理,或立即處理。

如果資料的任何部分未通過驗證,Workfront Fusion會傳回400 HTTP狀態代碼,並在HTTP回應內文中指定傳入資料未通過驗證檢查的原因。 如果傳入資料的驗證成功,Workfront Fusion會傳回"200 Accepted"狀態。

查詢字串

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編碼的檔案,您必須使用collection型別欄位來設定資料結構,該欄位包含巢狀欄位namemimedata。 欄位nametext型別,包含上傳檔案的名稱。 mimetext型別,並包含MIME格式的檔案。 欄位databuffer型別,包含正在傳輸之檔案的二進位資料。

如需MIME格式的詳細資訊,請參閱MIME模組

JSON

POST https://app.workfrontfusion.com/wh/<yourunique32characterslongstring>

Content-Type: application/json

{"name": "Workfront Fusion", "job": "automate"}
TIP
如果您想要存取原始JSON,請在設定webhook時啟用JSON傳遞。
  1. 按一下​**[新增]**以新增新的webhook。
  2. 按一下​顯示進階設定
  3. 按一下​JSON傳遞

Webhook標題

若要存取webhook的標頭,請在設定webhook時啟用Get要求標頭。

  1. 按一下​**[新增]**以新增新的webhook。
  2. 按一下​顯示進階設定
  3. 按一下​取得要求標題

您可以使用map()get()函式的組合來擷取特定的標頭值。

INFO
範例:
下列範例顯示從Headers[]陣列中擷取authorization標頭值的公式。 此公式會用於比較擷取值與指定文字的篩選中,以便只傳遞符合的Webhook。
設定篩選器
如需有關使用指定索引鍵取得陣列元素的進一步資訊,請參閱對應陣列文章中的使用指定索引鍵對應陣列元素

回應Webhook

webhook呼叫的預設回應是文字「已接受」。 回應會傳回至應用程式,該應用程式會在執行自訂Webhook模組期間呼叫webhook。

測試對webhook的回應

  1. 在您的情境中加入​ 自訂Webhook ​模組。

  2. 將新的webhook新增至模組。

  3. 將webhook URL複製到剪貼簿。

  4. 執行情境。

    自訂Webhook模組上的閃電圖示會變更為旋轉的點。 這顯示模組現在正等候webhook呼叫。

  5. 開啟新的瀏覽器視窗,將複製的URL貼到網址列,然後按​Enter

    已觸發自訂Webhook模組,瀏覽器將顯示新頁面。

如果要自訂webhook的回應,請採用模組Webhook回應。

模組的設定包含兩個欄位: 狀態和內文。

  • Status欄位包含HTTP回應狀態代碼,例如,2xx代表Success (例如,200代表OK)、3xx代表Redirection (例如,307代表Temporary Redirect)、4xx代表Client errors (例如,400代表Bad Request)等等。

  • Body欄位包含webhook呼叫將接受的任何內容。 可以是簡單文字、HTML、XML、JSON等。

    note tip
    TIP
    我們建議將Content-Type標頭設定為對應的MIME型別: text/plain (純文字)、text/html (HTML)、application/json (JSON)、application/xml (XML)等等。 如需MIME型別的詳細資訊,請參閱MIME模組

傳送回應的逾時為5分鐘。 如果在該期間內沒有回應,Workfront Fusion會傳回「200已接受」狀態。

HTML回應範例

INFO
範例:
設定Webhook回應模組,如下所示:
table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
狀態 2xx成功HTTP狀態代碼,例如200
正文 HTML程式碼
自訂標頭

>

  • > 索引鍵: Content-type
  • > : text/html >
自訂標頭
這會產生HTML回應,並顯示在網頁瀏覽器中:
HEML回應

重新導向範例

INFO
範例:​設定Webhook回應模組,如下所示:
table 0-row-2 1-row-2 layout-auto html-authored no-header
狀態 3xx重新導向HTTP狀態代碼,例如303
自訂標頭

>

  • > 索引鍵:位置
  • > :您要重新導向的URL。 >
Webhook回應

Webhook停用

若符合下列任一條件,Webhook 便會自動停用:

  • Webhook 已超過 5 天未連接至任何情境
  • 僅在非使用中的情境中使用 Webhook,而非使用中狀態已經超過 30 天。

如果停用的 Webhook 未連接任何情境,且處於停用狀態已超過 30 天,則會自動刪除和取消註冊。

疑難排解

對應面板中缺少專案

如果遵循Webhooks > 自訂Webhook模組的模組設定中的對應面板遺漏某些專案,請按一下​ Webhooks > 自訂Webhook ​模組以開啟其設定,然後按一下​重新決定資料結構

重新決定資料結構

然後遵循本文中設定webhook的資料結構一節中所述的步驟。

recommendation-more-help
workfront-fusion-help-workfront-fusion