一句话介绍:飞书多维表格+扫码枪读取纸质书ISBN号+爬取豆瓣数据+飞书应用开发能力=快速构建个人家庭图书管理系统。
接下来详细记录一下我创建模板和录入数据的过程。
契机是这样的,最近家里新买了一个书柜,我想着反正要把书都倒腾出来摆放一次,不妨顺便把家里的纸质书登记为一个表格;而且我最近翻出了一个以前买的扫码枪,可以发挥一下作用(实践下来发现确实挺好玩的)。
在工具的选择上,我没犹豫太多就选了飞书的多维表格。多维表格的扩展和开发能力很强,也能够快速把一个基础的数据表呈现为多种看板、画廊效果。而且多维表格最近还新增了AI捷径,可以直接调用AI能力填充表格。
整体设计思路大概分为以下几部分:
在飞书云文档新建多维表格。如果不想逐个手动配置字段的话,可以点击右上角的AI助手飞飞,告诉它希望增加哪些字段,AI就会帮助我们生成表头并设置出最为合适的字段属性:
我这次的思路是:先通过ISBN获取豆瓣图书数据,然后使用飞书的AI能力补充生成需要的字段,最后再手动录入少量数据。基于此,要录入的信息分为三类:
通过自动抓取导入+AI补全生成,尽可能减少手工录入的工作量。同时在多维表格中,数据表是最基础的数据库,后续可以基于数据表格创建不同的视图、表单或仪表盘,不过现在还是空表,所以我们把其他视图放到最后再介绍。
如果可以的话,用API是最好的,不过豆瓣的接口很早就关闭了,我在网上搜了一下,也没有其他太好用的图书API(或者都不免费)。鉴于个人使用一共也没多少本书,所以可以还是做一下豆瓣的爬虫吧,仅供学习使用,不会对豆瓣服务器造成太大压力。
不过由于豆瓣的图书简介内容并没有统一数据格式,这里还需要做很多错误处理,举个例子,比如定价这里,有时会写59.00元,有时会写¥59或CNY59,有时会写59,有时信息缺失干脆没有这个字段,所以为了避免程序处理时报错,就需要做一些处理,比如使用正则:
还有一个稍微特殊一点的就是封面图片,多维表格中支持上传图片附件,可以将封面图生成画廊,所以我们也需要顺便记录一下封面图片的URL地址,后续可以下载图片并上传到飞书中。
然后我试了一下飞书的AI功能,其实可以用AI自动补充图书分类:
再比如,豆瓣简介写的比较长,我们可以让AI进行总结,生成一句话简介:
这样设置好了之后,只要我们填入前几列的字段,飞书AI就会帮助我们自动补全这两列数据,非常好用。
多维表格其实自带一个Webhook接口用于提交数据,具体做法是点击文档右上角的「自动化」:
「创建自定义流程」:
左边选择「接收到Webhook时」,会得到一个Webhook地址,向这个地址发送JSON格式的数据,服务器就会收到并自动解析为字段;然后右侧选择「新增记录」,选择插入数据的位置为数据表,然后设置记录内容即可:
填写基本信息:
想要通过应用向多维表格中提交数据,主要需要几个过程,我会把文档附在这里供大家参考:
这个过程中,还需要向应用开放相应的操作权限,我建议是在「开发文档」中调试接口时,开通相应的权限。
具体来说,我们需要提前准备好4个参数,分别是:
提交appid和app_secret,获得tenant_access_token。
如果提交的数据和设置的字段类型不匹配就会报错,所以需要仔细debug一下。代码比较简单,大家应该能看明白:
大家现在用的更多的是手机扫描二维码。其实扫码枪这玩意儿一点都不神秘,超市收银台标配。而且一维码条形发明都几十年了,被广泛应用于商品标识。
扫码枪的原理其实很简单,就是通过光学扫描系统读取条形码中的数据,将其转换为电信号,再经过处理器处理后,模拟键盘输入的形式将数据传递给计算机等设备。
不过我用的并不是那种「有线枪式」的扫码枪,而是一个便携的蓝牙扫描枪(不带货哈)。所以对于电脑来说,扫码枪类似于一个无线键盘:
对于用户来说,只需要知道,连接扫码枪之后,你把键入的光标放在哪里,它就会把扫码结果直接输入到哪里(我录了个短视频,不知道能不能看清楚)。
扫码枪也有许多设置项,其中一项便是扫码结尾的字符,如果不做设置,扫码枪在连续扫描时就会录入一长串字符,所以一般来说会在结尾设置\n换行符。
到此我们就可以把以上所有工作流程串在一起了,运行起来的效果大概是这样:
这样基本上就能10s内录完一本书的数据,而且全程只需要做一个动作,就是扫码,很快就能整理出家里的图书数据库。
有了基础的数据表之后,就可以根据自己的需要创建更多视图。所谓视图,就是展现数据的不同方式。大家可以根据自己的数据类型和情况探索一下展示效果,这里不再详细介绍了~
而且你别说,做完这个图书数据表之后,我觉得其他家庭数据库也挺有搞头的,用类似的思路,可以很快搭建出「家庭药箱」「家庭食品保质期」「老婆的化妆品」等等数据表,无非就是替换一下条形码查询数据的接口,而且类似这种需要注意保质期的数据表,还能利用多维表格中的到期提醒功能自动发送提醒。下周有空就做。