1.2.5 Frame.io和Workfront Fusion

在上一个练习中,您配置了场景--aepUserLdap-- - Firefly + Photoshop并配置了一个传入webhook以触发该场景,并在场景成功完成时配置了一个webhook响应。 然后,您使用Postman触发了该方案。 Postman是一个非常出色的测试工具,但在实际商业情景中,商业用户不会使用Postman触发情景。 相反,他们会使用其他应用程序,并且希望其他应用程序在Workfront Fusion中激活场景。 在本练习中,您将对Frame.io执行同样的操作。

NOTE
此练习是为Frame.io V4创建的。 本练习中使用的以下某些功能当前以alpha语言提供,尚未正式提供。

1.2.5.1先决条件

在继续此练习之前,您需要完成您的Adobe I/O项目的设置,包括将​ Frame.io API ​添加到Adobe I/O项目,还需要配置应用程序以与API交互,例如PostmanPostBuster

1.2.5.2正在访问Frame.io

转到https://next.frame.io/

帧IO

单击实例图标以验证您当前登录到的实例。 选择您有权访问的实例,应为--aepImsOrgName--

单击​ +新建项目 ​以在Frame.io中创建自己的项目。

帧IO

选择​ 空白 ​模板,然后为您的项目输入名称--aepUserLdap--。 单击​ 新建项目

帧IO

然后,您将在左侧菜单中看到您的项目。 单击​ + ​图标,然后选择​ 新建文件夹

帧IO

输入名称CitiSignal Fiber Campaign,然后双击该文件夹以将其打开。

帧IO

单击​ 上传

帧IO

在前面的练习中,您下载了citisignal-fiber.psd。 选择该文件并单击​ 打开

帧IO

然后,文件​ citisignal-fibre.psd ​将在新创建的文件夹中可用。

帧IO

1.2.5.3 Workfront Fusion和Frame.io

在上一个练习中,您创建了方案--aepUserLdap-- - Firefly + Photoshop,该方案以自定义webhook开始,以webhook响应结束。 随后使用Postman测试了Webhook的使用情况,但显然,这种场景的要点是由外部应用程序调用。 如前所述,Frame.io将是该练习,但在Frame.io和--aepUserLdap-- - Firefly + Photoshop之间还需要另一个Workfront Fusion场景。 现在,您将配置该方案。

转到https://experience.adobe.com/。 打开​ Workfront Fusion

WF Fusion

在左侧菜单中,转到​ 方案 ​并选择您的文件夹--aepUserLdap--。 单击​ 创建新方案

帧IO

使用名称--aepUserLdap-- - Frame IO Custom Action V4

帧IO

单击画布上的​ 问号对象。 在搜索框中输入文本webhook,然后单击​ Webhooks

帧IO

单击​ 自定义webhook

帧IO

单击​ 添加 ​创建新的webhook url。

帧IO

对于​ Webhook名称,请使用--aepUserLdap-- - Frame IO Custom Action Webhook。 单击​ 保存

帧IO

您应该会看到此内容。 将此屏幕保持打开状态,并且不要触摸,因为您将在下一步中需要它。 在下一步中,您必须通过单击​ 将地址复制到剪贴板 ​来复制webhook URL。

帧IO

1.2.5.4 Frame.io V4自定义操作API

转到Postman并打开请求​ POST — 获取集合 Adobe IO - OAuth 中的访问令牌。 验证​ 参数 ​下的字段​ 作用域。 字段​ 范围 ​应包含范围frame.s2s.all。 如果它丢失,请添加它。 接下来,单击​ 发送 ​以请求新的​ access_token

帧IO

接下来,在集合​ Frame.io V4 - Tech Insiders ​中打开请求​ GET - List Accounts。 单击​ 发送

帧IO

然后,您应该会看到包含一个或多个帐户的类似响应。 查看响应并找到您正在使用的Frame.io V4帐户的字段​ id。 您可以在Frame.io V4用户界面中找到帐户的名称:

帧IO

复制字段​ id ​的值。

帧IO

在左侧菜单中,转到​ 环境 ​并选择您正在使用的环境。 在​ 初始值 ​列和​ 当前值 ​列中查找变量​ FRAME_IO_ACCOUNT_ID ​并粘贴您从上一个请求获得的​ id。 单击​ 保存

帧IO

在左侧菜单中,返回​ 收藏集。 在集合​ Frame.io V4 - Tech Insiders ​中打开请求​ GET - List Workspaces。 单击​ 发送

帧IO

然后,您应该会看到包含一个或多个帐户的类似响应。 查看响应并找到您正在使用的Frame.io V4 Workspace的字段​ id。 复制字段​ id ​的值。

帧IO

在左侧菜单中,转到​ 环境 ​并选择您正在使用的环境。 在​ 初始值 ​列和​ 当前值 ​列中查找变量​ FRAME_IO_WORKSPACE_ID ​并粘贴您从上一个请求获得的​ id。 单击​ 保存

帧IO

在左侧菜单中,返回​ 收藏集。 在集合​ Frame.io V4 - Tech Insiders ​的​ 自定义操作 ​文件夹中打开请求​ POST — 创建自定义操作

转到请求的​ 正文。 将字段​ name ​更改为--aepUserLdap-- - Frame.io Custom Action V4,然后将字段​ url ​更改为您从Workfront Fusion复制的Webhook URL的值。

单击​ 发送

帧IO

您的Frame.io V4自定义操作现已创建。

帧IO

返回https://next.frame.io/,并转到您在项目--aepUserLdap--中创建的​ CitiSignal Fibre Campaign ​文件夹。 刷新页面。

帧IO

刷新页面后,单击资产​ citisignal-fiber.psd ​上的3个点​ ,然后打开​ 自定义操作 ​菜单。 之后,您应该会看到之前创建的自定义操作出现在显示的菜单中。 单击自定义操作--aepUserLdap-- - Frame IO Custom Action Fusion V4

帧IO

然后,您应该会看到类似的​ 自定义操作 ​弹出窗口。 此弹出窗口是Frame.io与Workfront Fusion之间通信的结果。

帧IO

将屏幕更改回Workfront Fusion。 现在,您应该看到​ 已成功确定 ​显示在自定义Webhook对象中。 单击​ 确定

帧IO

单击​ 运行一次 ​以启用测试模式,然后再次测试与Frame.io的通信。

帧IO

返回到Frame.io并再次单击自定义操作--aepUserLdap-- - Frame IO Custom Action Fusion V4

帧IO

将屏幕切换回Workfront Fusion。 您现在应该会看到绿色复选标记,以及显示​ 1 ​的气泡。 单击气泡可查看详细信息。

帧IO

气泡的详细视图显示了从Frame.io收到的数据。 您应会看到各种ID。例如,字段​ resource.id ​显示资产​ citisignal-fibre.psd ​的Frame.io中的唯一ID。

帧IO

现在,Frame.io与Workfront Fusion之间的通信已建立,您可以继续配置。

1.2.5.5提供对Frame.io的自定义表单响应

在Frame.io中调用自定义操作时,Frame.io预期会收到来自Workfront Fusion的响应。 如果您回想一下您在上一个练习中构建的场景,则需要多个变量才能更新标准Photoshop PSD文件。 这些变量在您使用的有效载荷中定义:

{
    "psdTemplate": "citisignal-fiber.psd",
    "xlsFile": "placeholder",
    "prompt":"misty meadows",
    "cta": "Buy this now!",
    "button": "Click here to buy!"
}

因此,为了成功运行方案--aepUserLdap-- - Firefly + Photoshop,需要诸如​ promptctabutton ​和​ psdTemplate ​之类的字段。

前3个字段​ promptctabutton ​需要用户输入,当用户调用自定义操作时,需要在Frame.io中收集这些输入。 因此,在Workfront Fusion中需要完成的第一件事是检查这些变量是否可用,如果不可用,Workfront Fusion应回复到Frame.io,请求输入这些变量。 要实现这一点,可使用Frame.io中的表单。

返回到Workfront Fusion并打开您的方案--aepUserLdap-- - Frame IO Custom Action。 将鼠标悬停在​ 自定义webhook ​对象上,然后单击​ + ​图标以添加另一个模块。

帧IO

搜索Flow Control并单击​ 流量控制

帧IO

单击选择​ 路由器

帧IO

您应该会看到此内容。

帧IO

单击​ ​对象,然后单击以选择​ Webhooks

帧IO

选择​ Webhook响应

帧IO

您应该会看到此内容。

帧IO

复制以下JSON代码并将其粘贴到字段​ 正文 ​中。

{
  "title": "What do you want Firefly to generate?",
  "description": "Enter your Firefly prompt.",
  "fields": [
    {
      "type": "text",
      "label": "Prompt",
      "name": "Prompt",
      "value": ""
    },
    {
      "type": "text",
      "label": "CTA Text",
      "name": "CTA Text",
      "value": ""
    },
    {
      "type": "text",
      "label": "Button Text",
      "name": "Button Text",
      "value": ""
    }
  ]
}

单击图标以清理和美化JSON代码。 然后,单击​ 确定

帧IO

单击​ 保存 ​以保存更改。

帧IO

接下来,您需要设置一个过滤器,以确保场景的此路径仅在没有提示可用时运行。 单击​ 扳手 ​图标,然后选择​ 设置筛选器

帧IO

配置以下字段:

  • 标签:使用Prompt isn't available
  • 条件:使用{{1.data.Prompt}}
  • 基本运算符:选择​ 不存在
NOTE
可以使用以下语法手动指定Workfront Fusion中的变量: {{1.data.Prompt}}。 变量中的数字引用场景中的模块。 在此示例中,您可以看到场景中的第一个模块名为​ Webhooks,其序列号为​ 1。 这意味着变量{{1.data.Prompt}}将访问序列号为1的模块中的字段​ data.Prompt。 序列号有时可能不同,因此,在复制/粘贴此类变量时请务必注意,并始终验证使用的序列号是否正确。

单击​ 确定

帧IO

您应该会看到此内容。 首先单击​ 保存 ​图标,然后单击​ 运行一次 ​以测试您的方案。

帧IO

您应该会看到此内容。

帧IO

返回到Frame.io并再次单击资产​ citisignal-fibre.psd ​上的自定义操作--aepUserLdap-- - Frame IO Custom Action Fusion

帧IO

现在,您应该会在Frame.io中看到一个提示。 不要填写字段,也不要提交表单。 此提示基于您刚刚配置的Workfront Fusion响应显示。

帧IO

切换回Workfront Fusion,然后单击​ Webhook响应 ​模块上的气泡。 您将在​ INPUT ​下看到包含表单的JSON有效负载的正文。 再次单击​ 运行一次

帧IO

您应该会再次看到此内容。

帧IO

返回到Frame.io并按照指示填写字段。

  • 提示:通过空间的未来激光束
  • CTA:立即旅行时间!
  • 按钮文本:加入讨论区!

单击​ 提交

帧IO

然后,您应该会在Frame.io中看到一个弹出窗口,它看起来像这样。

帧IO

切换回Workfront Fusion,然后单击​ 自定义webhook ​模块上的气泡。 在操作1中的​ 输出 ​下,您现在可以看到一个新的​ 数据 ​对象,该对象包含​ 按钮文本CTA文本 ​和​ 提示 ​之类的字段。 由于这些用户输入变量可在场景中使用,因此您有足够的空间继续配置。

帧IO

1.2.5.6从Frame.io检索文件位置

如前所述,此方案需要诸如​ promptctabutton ​和​ psdTemplate ​之类的字段才能正常工作。 前3个字段现在已可用,但仍缺少要使用的​ psdTemplatepsdTemplate ​现在将引用Frame.io位置,因为文件​ citisignal-fibre.psd ​托管在Frame.io中。 为了检索该文件的位置,您需要在Workfront Fusion中配置并使用Frame.io连接。

返回到Workfront Fusion并打开您的方案--aepUserLdap-- - Frame IO Custom Action V4。 将鼠标悬停在​ 上? ​模块,单击​ + ​图标以添加另一个模块并搜索frame。 单击​ Frame.io

帧IO

单击​ Frame.io

帧IO

单击​ 进行自定义API调用

帧IO

要使用Frame.io连接,您需要先对其进行配置。 单击​ 添加 ​以执行此操作。

帧IO

选择​ 连接类型 IMS服务器到服务器,并输入名称--aepUserLdap-- - Adobe I/O - Frame.io S2S

帧IO

接下来,您需要输入在​ 快速入门 ​模块中配置的Adobe I/O项目的​ 客户端ID ​和​ 客户端密钥。 您可以在此处找到Adobe I/O项目的​ 客户端ID ​和​ 客户端密钥

帧IO

返回到Workfront Fusion中的场景。 将​ 客户端ID ​和​ 客户端密钥 ​的值粘贴到连接设置窗口中其各自的字段中。 单击​ 继续。 您的连接现在将由Workfront Fusion进行测试。

帧IO

如果连接测试成功,它将自动显示在​ 连接 ​下。 您现在已成功连接,需要完成配置以从Frame.io获取所有资源详细信息,包括文件位置。 为此,您需要使用​ 资源ID

帧IO

字段​ 资源ID ​作为初始​ 自定义webhook ​通信的一部分由Frame.io共享到Workfront Fusion,可在字段​ resource.id ​下找到。

对于模块​ Frame.io — 进行自定义API调用,请使用URL: /v4/accounts/{{1.account_id}}/files/{{1.resource.id}}

NOTE
可以使用以下语法手动指定Workfront Fusion中的变量: {{1.account_id}}{{1.resource.id}}。 变量中的数字引用场景中的模块。 在此示例中,您可以看到场景中的第一个模块名为​ Webhooks,其序列号为​ 1。 这意味着变量{{1.account_id}}{{1.resource.id}}将从序列号为1的模块中访问该字段。 序列号有时可能不同,因此,在复制/粘贴此类变量时请务必注意,并始终验证使用的序列号是否正确。

接下来,单击​ 查询字符串 ​下的​ +添加项

帧IO

输入这些值,然后单击​ 添加

include
media_links.original

帧IO

您现在应该拥有此项。 单击​ 确定

帧IO

接下来,您需要设置一个过滤器,以确保场景的此路径仅在没有提示可用时运行。 单击​ 扳手 ​图标,然后选择​ 设置筛选器

帧IO

配置以下字段:

  • 标签:使用Prompt is available
  • 条件:使用{{1.data.Prompt}}
  • 基本运算符:选择​ 存在
NOTE
可以使用以下语法手动指定Workfront Fusion中的变量: {{1.data.Prompt}}。 变量中的数字引用场景中的模块。 在此示例中,您可以看到场景中的第一个模块名为​ Webhooks,其序列号为​ 1。 这意味着变量{{1.data.Prompt}}将访问序列号为1的模块中的字段​ data.Prompt。 序列号有时可能不同,因此,在复制/粘贴此类变量时请务必注意,并始终验证使用的序列号是否正确。

单击​ 确定

帧IO

您现在应该看到此内容。 保存更改,然后单击​ 运行一次 ​以测试您的方案。

帧IO

返回到Frame.io并再次单击资产​ citisignal-fibre.psd ​上的自定义操作--aepUserLdap-- - Frame IO Custom Action Fusion V4

帧IO

现在,您应该会在Frame.io中看到一个提示。 不要填写字段,也不要提交表单。 此提示基于您刚刚配置的Workfront Fusion响应显示。

帧IO

切换回Workfront Fusion。 再次单击​ 运行一次

帧IO

返回到Frame.io并按照指示填写字段。 单击​ 提交

  • 提示:通过空间的未来激光束
  • CTA:立即旅行时间!
  • 按钮文本:加入讨论区!

帧IO

切换回Workfront Fusion并单击​ Frame.io上的气泡 — 进行自定义API调用 ​模块。

帧IO

在​ OUTPUT > Body > data ​下,您现在可以看到有关特定资产​ citisignal-fiber.psd ​的大量元数据。

帧IO

此用例所需的特定信息是文件​ citisignal-fibre.psd ​的位置URL,您可以通过向下滚动到字段​ media_links > 原始 > download_url ​来查找该文件。

帧IO

您现在拥有此用例运行所需的所有信息(promptctabutton ​和​ psdTemplate)。

1.2.5.7调用Workfront方案

在上一个练习中,您已配置方案--aepUserLdap-- - Firefly + Photoshop。 现在,您需要对此场景进行细微更改。

在另一个选项卡中打开方案--aepUserLdap-- - Firefly + Photoshop,然后单击第一个​ Adobe Photoshop — 应用PSD编辑 ​模块。 现在,您应该看到输入文件已配置为使用Microsoft Azure中的动态位置。 鉴于在此使用案例中,输入文件不再存储在Microsoft Azure中,而是使用Frame.io存储,因此您需要更改这些设置。

帧IO

将​ 存储 ​更改为​ 外部 ​并将​ 文件位置 ​更改为仅使用从传入​ 自定义webhook ​模块获取的​ psdTemplate ​变量。 单击​ 确定,然后单击​ 保存 ​以保存更改。

帧IO

单击​ 自定义webhook ​模块,然后单击​ 将地址复制到剪贴板。 您需要复制URL,因为在其他情况下您将需要使用它。

帧IO

返回方案--aepUserLdap-- - Frame IO Custom Action V4。 将鼠标悬停在​ Frame.io上 — 进行自定义API调用 ​模块并单击​ + ​图标。

帧IO

输入http,然后单击​ HTTP

帧IO

选择​ 发出请求

帧IO

将自定义webhook的URL粘贴到字段​ URL ​中。 将​ 方法 ​设置为​ 发布

帧IO

将​ Body type ​设置为​ Raw ​并将​ Content type ​设置为​ JSON (application/json)
将以下JSON有效负载粘贴到字段​ 请求内容 ​中,并启用​ 分析响应 ​的复选框。

{
    "psdTemplate": "citisignal-fiber.psd",
    "xlsFile": "placeholder",
    "prompt":"misty meadows",
    "cta": "Buy this now!",
    "button": "Click here to buy!"
}

您现在已配置静态有效负载,但需要使用之前收集的变量将其变为动态有效负载。

帧IO

对于字段​ psdTemplate,请用变量​ Body > data > media_links > original > download_url ​替换静态变量​ citisignal-fibre.psd

帧IO

对于字段​ promptcta ​和​ button,请用Frame.io的传入webhook请求插入到方案中的动态变量替换静态变量,这些字段为​ data.Promptdata.CTA Text ​和​ data.Button Text

此外,启用​ 解析响应 ​的复选框。

单击​ 确定

帧IO

单击​ 保存 ​以保存更改。

帧IO

1.2.5.8在Frame.io中保存新资源

调用另一个Workfront Fusion场景后,将生成一个可用的新Photoshop PSD模板。 该PSD文件需要存储回Frame.io中,这是此方案中的最后一步。

将鼠标悬停在​ HTTP上 — 发出请求 ​模块并单击​ + ​图标。

帧IO

选择​ Frame.io

帧IO

选择​ 进行自定义API调用

帧IO

将自动选择Frame.io连接。

帧IO

对于模块​ Frame.io — 进行自定义API调用,请使用URL: /v4/accounts/{{1.account_id}}/folders/{{4.body.data.parent_id}}/files/remote_upload

NOTE
如前所述,可以使用以下语法手动指定Workfront Fusion中的变量: {{1.account_id}}{{4.body.data.parent_id}}。 变量中的数字引用场景中的模块。
​>在此示例中,您可以看到场景中的第一个模块名为​ Webhooks,其序列号为​ 1。 这意味着变量{{1.account_id}}将从序列号为1的模块中访问该字段。
​>在此示例中,您可以看到场景中的第四个模块名为​ Frame.io — 进行自定义API调用,其序列号为​ 4。 这意味着变量{{4.body.data.parent_id}}将从序列号为4的模块中访问该字段。
​>如果模块的序列号不同,则必须更新上述URL中的变量以链接到正确的模块。

帧IO

将字段​ 方法 ​更改为​ POST

将以下JSON代码段复制并粘贴到字段​ 正文 ​中。

{
  "data": {
    "name": "citisignal-fiber-{{timestamp}}.psd",
    "source_url": "{{6.data.newPsdTemplate}}"
  }
}
NOTE
可以使用以下语法手动指定Workfront Fusion中的变量: {{6.data.newPsdTemplate}}。 变量中的数字引用场景中的模块。 在此示例中,您可以看到方案中的第六个模块名为​ HTTP — 发出请求,其序列号为​ 6。 这意味着变量{{6.data.newPsdTemplate}}将访问序列号为6的模块中的字段​ data.newPsdTemplate
​>如果模块的序列号不同,则必须更新上述URL中的变量以链接到正确的模块。

单击​ 确定

帧IO

单击​ 保存 ​以保存更改。

帧IO

1.2.5.9测试您的端到端用例

单击方案--aepUserLdap-- - Frame IO Custom Action中的​ 运行一次

帧IO

返回到Frame.io并再次单击资产​ citisignal-fibre.psd ​上的自定义操作--aepUserLdap-- - Frame IO Custom Action Fusion V4

帧IO

现在,您应该会在Frame.io中看到一个提示。 不要填写字段,也不要提交表单。 此提示基于您刚刚配置的Workfront Fusion响应显示。

帧IO

切换回Workfront Fusion。 单击方案--aepUserLdap-- - Frame IO Custom Action V4中的​ 运行一次

帧IO

在Workfront Fusion中,打开方案--aepUserLdap-- - Firefly + Photoshop,同时在该方案中单击​ 运行一次

帧IO

返回到Frame.io并按照指示填写字段。 单击​ 提交

  • 提示:通过空间的未来激光束
  • CTA:立即旅行时间!
  • 按钮文本:加入讨论区!

帧IO

1-2分钟后,您应该会在Frame.io中看到自动显示的新资源。 双击新资源以将其打开。

帧IO

现在,您可以清楚地看到所有用户输入变量均已自动应用。

4bbf020c-24db-4a43-b239-88fab142f02d