ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何在 Automatisch 集成代码中使用全局变量 $ 发起 HTTP 请求并读取步骤参数?

如何在 Automatisch 集成代码中使用全局变量 $ 发起 HTTP 请求并读取步骤参数? 如何在 Automatisch 集成代码中使用全局变量 $ 发起 HTTP 请求并读取步骤参数【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch在为 Automatisch 开发集成文档中 integration 与 app 两个词互换使用时触发器trigger和动作action的run函数都会收到一个全局变量对象$。它携带了你在 App 定义、认证配置中准备好的信息也提供了 HTTP 客户端和读取用户在界面上填写的步骤参数的入口。本文基于 Automatisch 官方的 build integrations 文档说明如何在集成代码里用$.http发起真实 HTTP 请求、用$.step.parameters读取步骤参数并给出验证请求是否生效的操作路径。$对象中与本任务相关的属性$是一个 JS 对象以下属性与发请求 读参数直接相关完整列表见 global-variable 文档属性用途$.httpHTTP 客户端用于向第三方服务发起请求$.step.parameters用户在 Automatisch UI 中为该触发器/动作设置的参数$.auth.data之前用$.auth.set()存入并加密落库的认证数据$.app.apiBaseUrlApp 定义中设置的 API base URL会作为$.http请求的 base URL$.app.baseUrlApp 定义中设置的服务 base URL$.setActionItem设置动作的执行结果供 UI 展示和后续步骤使用$.pushTriggerItem向 Automatisch 推送触发器数据$.app.apiBaseUrl的值来自 App 定义例如 App 文档 中的示例定义apiBaseUrl: https://api.thecatapi.com之后$.app.apiBaseUrl就返回该值。步骤参数从哪里来先定义 arguments再用 $.step.parameters 读取$.step.parameters对应的是用户在界面上设置的参数。参数本身要先在动作定义里声明。Actions 文档 中的Mark the cat image as favorite动作声明了如下参数import defineAction from ../../../../helpers/define-action.js; export default defineAction({ name: Mark the cat image as favorite, key: markCatImageAsFavorite, description: Marks the cat image as favorite., arguments: [ { label: Image ID, key: imageId, type: string, required: true, description: The ID of the cat image you want to mark as favorite., variables: true, }, ], async run($) { // TODO: Implement action! }, });arguments数组中每一项的key这里是imageId就是用户在 UI 上填写的字段名。声明之后代码里用$.step.parameters.imageId即可拿到用户填的值。global-variable 文档 还引用了现成例子Slack 集成的 Send a message to channel 动作里有一个message步骤参数代码中用$.step.parameters.message读取要发送的消息内容。读取参数时必须用arguments里定义的key而不是label否则拿到的是undefined。用 $.http 发起 HTTP 请求$.http是 axios 的封装在需要向第三方服务发请求时使用。App 定义里的apiBaseUrl会被用作请求的 base URL所以你传相对路径即可。文档给出的 GET 示例文档示例来自 cat API 集成await $.http.get(/v1/images/search?orderDESC, { headers: { x-api-key: $.auth.data.apiKey, }, });POST 示例同样来自 Actions 文档 中mark-cat-image-as-favorite动作的完整run实现async run($) { const requestPath /v1/favourites; const imageId $.step.parameters.imageId; const headers { x-api-key: $.auth.data.apiKey, }; const response await $.http.post( requestPath, { image_id: imageId }, { headers } ); $.setActionItem({ raw: response.data }); }这段代码把三个知识点串在了一起$.step.parameters.imageId读取用户在 UI 上填的 Image ID$.auth.data.apiKey读取认证数据由$.auth.set()存入Automatisch 落库前会加密见 Auth 文档$.http.post向 API base URL 后的/v1/favourites发请求请求体按 API 要求携带image_id。请求结果用$.setActionItem({ raw: response.data })设置为动作结果它会被显示在 Automatisch UI 中并可被 workflow 的后续步骤引用。错误处理不需要自己写$.http会自动处理状态码落在 2xx 范围之外的响应你不需要在代码里手动捕获。出错时Automatisch 会以错误消息或错误载荷的形式处理具体信息可以在 Automatisch 的 execution details 页面查看。如果构建的是触发器而不是动作请求到的数据则通过$.pushTriggerItem推送且必须按倒序时间reverse-chronological order推送并在meta.internalId中带上唯一标识以防止重复处理见 Triggers 文档。验证请求与参数读取是否生效文档给出的验证方式是走 UI 的Test Continue流程Actions 文档 原文步骤进入 Automatisch 的 flows 页面创建一个新 flow添加你的触发器作为第一步文档示例用的是Search cat images再把动作如Mark the cat image as favorite作为第二步加入 flow给动作的Image ID参数填入从第三方 API 获得的一个真实 ID文档示例是从 cat API 搜索结果里取一个图片 ID点击Test Continue按钮。如果界面中出现了 JSON 响应说明触发器和动作构建正确$.http请求和$.step.parameters读取都工作正常。若请求失败非 2xx错误会出现在 execution details 页面按文档说明无需在代码中自行处理。限制与下一步$.http的 base URL 是 App 定义中的apiBaseUrl改 base 要改 App 定义不是改请求代码触发器侧的$.pushTriggerItem对重复数据有按 flow 维度的去重控制用internalId比对已处理数据且Test Continue执行时只会推送一条数据并提前退出这是文档明确的行为完整的 app 目录结构auth、triggers、actions、common、dynamic-data、assets与index.js入口见 folder structure 文档各类认证写法3-legged OAuth、refresh token、API key、无认证的可参考实现见 Examples 文档。【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表