Webhook

webhook是由事件触发的HTTP调用。 您可以使用Webhook激活即时触发器模块。 任何连接到Internet并允许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 自动化和集成包

Workfront Ultimate

Workfront Prime 和 Select 包,且需额外购买 Workfront Fusion。

Adobe Workfront 许可证

标准

工作版或更高版本

Adobe Workfront Fusion 许可证

基于操作:适用于拥有基于操作的许可证的组织

基于连接器(旧版):Workfront Fusion for Work Automation and Integration

产品 如果您的组织使用的 Workfront Select 或 Prime 包不包含 Workfront 自动化和集成,则必须单独购买 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)进行身份验证。

将webhook与客户端证书(mTLS)一起使用

使用mTLS,您可以提供客户端证书和私钥。 调用webhook时,Fusion使用证书和密钥向目标服务验证自身。 此双向身份验证允许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 System (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后,您可以将其同时用于多个场景。

配置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编码的文件,您必须使用包含嵌套字段namemimedatacollection类型字段配置数据结构。 字段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表示成功(例如,200表示正常),3xx表示重定向(例如,307表示临时重定向),4xx表示客户端错误(例如,400表示错误请求)等等。

  • Body字段包含webhook调用将接受的任何内容。 它可以是简单文本、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响应示例

INFO
示例:
按如下方式配置Webhook响应模块:
table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
状态 2xx成功HTTP状态代码,例如200
正文 HTML代码
Custom headers

>

  • > : Content-type
  • > : text/html >
自定义标头
这将生成HTML响应,并在Web浏览器中显示:
HEML响应

重定向示例

INFO
示例:​按如下方式配置Webhook响应模块:
table 0-row-2 1-row-2 layout-auto html-authored no-header
状态 3xx重定向HTTP状态代码,例如303
Custom headers

>

  • > :位置
  • > :要重定向到的URL。 >
Webhook响应

Webhook停用

如发生以下任一情况,Webhook 会自动停用:

  • Webhook 超过 5 天未连接到任何场景
  • Webhook 仅用于处于非活动状态的场景,并且这些场景已超过 30 天未活动。

如停用的 Webhook 未连接至任何场景且停用超过 30 天,将会自动删除并注销。

故障排除

映射面板中缺少项目

如果在Webhook > 自定义Webhook模块之后的模块设置中的映射面板中缺少某些项,请单击​ Webhooks > 自定义Webhook ​模块以打开其设置,然后单击​重新确定数据结构

重新确定数据结构

然后按照本文中配置webhook的数据结构部分中描述的步骤进行操作。

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