Article
飞书多维表格:使用 n8n 存取飞书数据
前两篇介绍了 n8n本地部署基础操作,以及飞书机器人通过 n8n-nodes-feishu-lark 插件把飞书作为IM消息系统,充当 n8n 的手和脚,从而打破单击系统的束缚,自动化流程因此有了更广阔的应用空间。
本文我们把重点放到飞书在线数据库叫做多维表格(Bitable),它既是一个低门槛的数据库存储工具,又可以无代码的搭建专属业务系统,同时兼顾数据存储、多维度分析和团队协同。
还是延续前面的管理公网IP这么一个切入点,把每次获取到的公网 IP 的完整过程记录到多维表格里面,然后再基于这个多维表格数据做一个仪表盘(硬凑一个^-^),实现从事件触发 - 数据落盘 - 数据展示的完整闭环。
一、配置多维表格
首先,在飞书的网页版上面建立一个空白的多维表格(注意:lark 插件仅支持 base 形态)。 然后增加以下字段,用来记录一次任务的执行过程:ID、请求内容、机器人类型、公网IP、任务消耗时间、开始时间、结束时间。


第二步,创建的测试应用,增加多维表格的权限。我这里直接用上一篇文章已经创建好的应用,在应用里面增加多维表格操作的权限,简单权限不需要提交发布版本,开通权限即可使用。

第三步,也是最重要最关键的一步:把刚刚创建的这个文档授权给应用访问。具体操作步骤:选择 更多 - 添加文档应用 菜单,然后搜索并添加我们的应用。


二、在 n8n 中使用飞书多维表格
完成飞书侧的准备后,就可以去配置 n8n 的飞书多维表格的节点了。
把数据保存到多维表格里面,在 n8n 中需要用到表格的唯一标识:多维表格APP标识(app_token),多维表格数据表唯一标识(table_id)

选择新增记录节点。

配置新增节点,填写 Base App 和 Table 参数,并以 JSON 形式配置要写入的字段内容。

整个工作流的逻辑如下:
-
接收到飞书的消息
-
先记录一条开始任务的记录到多维表格
-
然后去获取公网IP
-
获取到公网IP回复消息
-
然后计算任务的消耗时间,并更新刚刚写入到多维表中的记录。

多维表格中记录的数据

这样,一次完整的任务执行就会在多维表格中留下清晰的数据记录。
三、有数据才好做仪表盘
这里插一句题外话:用旧手机当服务器,是真的不能锁屏。
文章主题的内容在两天前就完成了。为了让仪表盘展示的好看一点,我有把定时获取公网 IP 的工作流也增加了写入多维表格的功能。

但是,在手机上运行的 n8n 放家里一整天,除了开始写入的两条记录,后面就没有新的定时数据写入。
刚开始以为少安装了依赖,尝试安装 cron 也一样不行,没有定时的时间去写入多维表格,人家也没用 cron 去跑的定时任务的。而且,手机上我也给应用加了锁,Termux 应用不会被系统清理,看手机界面也是一直保持着的。
想着利用周末好好查查原因,同时多搞些数据统计好看些。为了把手机上的 database.sqlite 直接拷贝到电脑上测试,先在电脑跑起来写入一些数据把文章发了,下载过程多耗了一点时间,需要额外安装 lrzsz。过程中手机屏幕都是亮着 的,呃。。。就这一丢丢操作的时间内,飞书竟然收到了定时获取公网 IP 的消息。
难不成手机锁屏了,后台任务就不工作了?手机接上充电线,设置充电不锁屏,你还别说,后面在多维表格就稳定的看到定时定点的写入记录了。
有了数据,做一个简单的统计IP的仪表盘。

小结
现在写程序真的很容易,几乎零门槛。各种基础设施都很完善,并且很多都免费的。消息系统、数据库、自动化平台都能很容易地获取。
更逆天的是,现在你只要有想法,然后 AI 就能直接在极短的时间,给你把原型给生成出来。
这是最好的时代,也是最坏的时代。看的是你的态度,你的行动,你的积累。
Related