我让OpenClaw自动检查了123条VPS优惠库存,飞书表格全自动更新
昨天遇到一个事:我的飞书多维表格里存了 123 条VPS优惠数据, RackNerd、CloudCone、搬瓦工、DMIT,每条都有购买链接。但库存随时在变,手动逐个点开检查?得点到猴年马月。
我想了个办法 —— 让 OpenClaw AI助手帮我干。

起因
我监控 VPS 库存有一段时间了,优惠信息都存在飞书多维表格里。表格长这样:(2026年国外VPS优惠库存列表)
- 服务商、配置(CPU/内存/SSD/流量)
- 价格(美元)、购买链接
- 库存状态(有货/无货)
问题在于:链接对应的产品经常断货或下架,但表格里的状态不会自动更新。
之前全靠手动点链接看有没有货,然后回表格改状态。123条,想想就头大。
思路
跟AI助手(小龙虾)说了这个需求,它提出一个方案:
- 用飞书官方的命令行工具 lark-cli 读取表格数据
- 批量curl每个购买链接,跟踪重定向链判断库存
- 自动更新飞书表格的"有无库存"字段
听起来靠谱,开干。
OpenClaw 安装 lark-cli
lark-cli 是飞书官方出的CLI工具,npm 一行搞定,也可以直接发给 OpenClaw 的:帮我安装:https://github.com/larksuite/cli
npm install -g @larksuite/cli
配置飞书应用
运行初始化命令,它会帮你创建一个飞书应用:
lark-cli config init --new
终端会输出一个链接,浏览器打开后扫码确认。成功后会给你App ID和App Secret。

可以在飞书开放平台查看创建的应用:

OpenClaw 授权登录
这一步有点讲究。直接用 --recommend 会申请所有权限,需要管理员审核。
更好的方式是按需授权。比如我们只需要多维表格权限:
lark-cli auth login --domain base --no-wait
终端会输出一个授权链接和验证码,扫码即可:

可在 飞书开放平台 查看创建的应用信息

授权成功后,lark-cli 就能以你的身份操作飞书文档及多维表格了。
读取飞书表格数据
先拉表格结构看看:
# 列出字段
lark-cli base +field-list --base-token <app_token> --table-id <table_id> --as user
11个字段:服务商、VPS服务商、购买链接、CPU核心、内存、SSD、月流量、价格、价格时间、有无库存、更新日期。
然后拉数据:
# 拉取记录(注意默认最多100条,需要分页)
lark-cli base +record-list --base-token <app_token> --table-id <table_id> --as user --limit 100 --offset 0
lark-cli base +record-list --base-token <app_token> --table-id <table_id> --as user --limit 100 --offset 100
123条数据到手。
批量检查库存
这一步踩了不少坑。
第一个坑:curl没带cookie,重定向链断了。
RackNerd的分销链接会经过3次重定向:aff.php → cart.php → 产品配置页。不带cookie的话,最终会跳到一个通用页面,误判为无货。
解决:用 -c 和 -b 参数带cookie jar跟踪完整重定向链。
第二个坑:CloudCone需要JS渲染,curl拿到的是404。
CloudCone的链接从服务器curl全都返回404页面,但实际上有些产品是有货的。这个没法自动判断,只能手动确认。
第三个坑:第一次误判了20条RackNerd记录。
因为重定向没跟踪完整,把一堆有货的判成无货并更新了飞书表格。发现后赶紧用飞书API批量修复回去。
最终的正确判断逻辑:
- RackNerd:重定向到
confproduct(配置页)= 有货,显示"Out of Stock"= 无货 - BandwagonHost:有"Order Now"按钮 = 有货,显示"Out of Stock" = 无货
- DMIT:有"Configure" = 有货
- CloudCone:从服务器无法判断,需手动确认
更新飞书表格
用飞书API批量更新:
lark-cli api PUT "/open-apis/bitable/v1/apps/<app_token>/tables/<table_id>/records/<record_id>" \
--as user \
--data '{"fields":{"有无库存":"无货"}}'
注意:+record-upsert 命令的 --json 参数对select字段格式有要求,直接用 api PUT 更稳定。
最终结果
跑完一轮,实际变更:
- RackNerd:5个断货(1111促销和2022黑五已结束),其余有货
- CloudCone:大部分VPS无货,compute系列有货(需手动确认)
- BandwagonHost:基本有货,仅3个pid断货
- DMIT:2个都有货
整个过程中间踩了3个坑、返工2次,但最终还是把表格更新准确了。
几个经验
- lark-cli分页默认最多100条,超过的需要手动
--offset翻页 - 重定向跟踪一定要带cookie,不然WHMCS系统的分销链接会断链
- 飞书多维表格的select字段,用
lark-cli api PUT直接传文本值就行,比+record-upsert简单 - 有些网站从服务器curl拿不到真实页面(CloudCone),这种别硬来,手动确认更快
- 批量操作前先dry-run,我第一次误改了20条就是因为没验证
本文记录的是真实操作过程。如果你也需要批量检查VPS网站库存,可以参考这个思路。lark-cli + AI助手(OpenClaw) = 省下大量重复劳动。
你觉得这篇文章怎么样?
共有 0 条评论