使用N8N工作流自动化解决三方API数据对接


title: 使用N8N工作流自动化解决三方API数据对接

0、n8n是什么?

n8n 是免费的基于节点的工作流自动化工具,可以轻松实现跨不同服务的任务自动化。它可以自托管,易于扩展,因此也可以与内部工具一起使用。

1、安装

参见n8n官方文档^[1],推荐docker安装

2、需求案例

在商业推广中往往有一些API对接的需求,细分下来有这几类
* ① 通用广告投放平台 如果是广点通、巨量引擎、橙子建站线索API对接等
* ② 我方开放API
* ③ 三方API对接
市场推广活动会产生三方API对接的需求。
这样的需求去基于代码开发的方式对接,对于开发者来说价值不高,使用N8N能解决这种对接问题

例如一个推广服务商使用API提供线索,需要实现全自动化同步到我方系统

工作流逻辑上就是: 计划任务周期运行 > 读取数据通过API(三方) > 数据转换处理 > 写入数据通过API(我方)

3、n8n实现

n8n工作流可视化效果图
使用N8N工作流自动化解决三方API数据对接

共需 4个 核心节点(node)(写入excel文件可忽略)
计划任务周期运行Cron CORE NODES > Flow > Cron
读取数据通过API(三方)DEVELOPMENT > HTTP Request
数据转换处理 CORE NODES > Function
写入数据通过API(我方)DEVELOPMENT > HTTP Request

主要说下数据转换处理

数据转换处理把接口返回数据变成 n8n中 items列表
接口返回数据在n8n中默认为items,由于返回的多条数据是在json中data字段中,需要做个转换取出来转换成n8n中 items列表供下游节点使用。
items[0].json.data 取接口返回数据,json数据,data字段

let rows = []; 

for (item of items[0].json.data) {
  rows.push(item);
}

console.log('Done!');
return rows;

在n8n中的函数代码都是js编写的

数据转换处理好后,items就有多个了,本工作流中取到了3个items,对于「写入数据通过API」就会调用3次

4、参考

1. n8n官方文档

发表回复