影刀RPA新手教程:飞书集成实战——消息通知与多维表格读写
影刀RPA新手教程:飞书集成实战——消息通知与多维表格读写
上个月公司要求做个电商监控流程:采集商品价格,异常就飞书告警,正常数据写飞书多维表格。
我第一次做的时候卡在飞书API认证上折腾了半天——AppId填了但表格连不上,后来发现是权限没开。这种坑踩过一次就记住了,这篇把飞书集成的完整流程讲清楚。
一、飞书消息通知:Webhook机器人
1. 配置Webhook机器人
飞书群机器人是最简单的通知方式,不需要创建应用,一个Webhook地址就能发消息。
配置步骤:
- 打开飞书群聊,点群设置
- 找到"群机器人",点"添加机器人"
- 选择"自定义机器人",起个名字
- 安全设置里选"签名校验"(更安全)或"自定义关键词"(最简单)
- 拿到Webhook地址,形如
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx
Webhook地址就是机器人的云端地址,有了它就能通过网络找到机器人发消息。
2. 影刀里发送飞书消息
影刀有专门的"飞书群通知"指令,不用自己拼HTTP请求。
机器人地址:填刚才拿到的Webhook地址。

签名校验:如果机器人安全设置里勾了签名校验,这里填密钥。没勾就留空。
消息格式类型,四种:
- 文本类型:纯文本消息,最简单。支持@联系人,写法是
<at user_id="ou_xxx">名字</at>,@所有人写<at user_id="all">所有人</at> - 图片类型:需要AppId和AppSecret,图片10M以内
- 富文本类型:支持飞书原格式内容,能排版、加链接、@人
- 消息卡片类型:飞书独有格式,用飞书消息卡片搭建工具编辑,粘过来用
日常告警用文本类型就够了。要做得好看用消息卡片,卡片可以带按钮、分栏、带图。
3. 实际用法
采集到异常价格时发飞书通知:
如果 price > 正常价格上限:
飞书群通知:
机器人地址: webhook_url
消息格式: 文本类型
消息内容: f"价格异常!商品:{title},当前价格:{price},超过阈值:{max_price}"
文本内容里可以用Python模式拼接变量,点亮Python图标,写f"价格异常:{title} - {price}元"。
二、飞书在线表格:建立连接
飞书在线表格和多维表格是两回事。在线表格就是类似Excel的电子表格,多维表格是类似数据库的结构化表格。先说在线表格。
建立表格连接
影刀操作飞书表格前,必须先用"建立表格连接"指令生成飞书对象。
三个参数:

AppId:应用唯一标识。去飞书开放平台创建企业自建应用,在应用详情页获取。
AppSecret:应用密钥,创建应用时平台生成。
Spreadsheet:表格唯一标识。从飞书表格URL里取,比如https://sample.feishu.cn/sheets/shtcnmBA*****yGehy8,中间那串就是。
创建应用的完整流程
- 飞书开放平台创建企业自建应用(需要账号有权限,没权限找管理员申请)
- 获取AppId和AppSecret
- 添加相应权限(查看、编辑在线表格等)
- 创建版本并发布应用
- 切换飞书管理后台,审核应用
- 给文档添加应用(文档右上角"…"→更多→添加文档应用)
- 注意:表格需要有管理权限才能添加应用
这一步最容易漏的是第6步——应用创建好了但没加到文档里,结果连接时报权限不足。
飞书对象
连接成功后输出一个feishu_instance变量,后面的所有飞书表格操作指令都用这个对象。跟数据库连接对象一个道理,先连接后操作。
三、飞书在线表格读写
1. 读取表格数据
"读取表格数据"指令,读取指定区域的数据。
读取方式:单元格、区域、行、列四种。
-
单元格:填
A1,返回字符串 -
行:填
1,返回一维列表 -
列:填
A,返回一维列表 -

-
区域:填
A1:B2,返回二维列表
读取格式:纯文本、公式计算值、公式、公式计算值(非格式化)。一般用纯文本就行,需要公式结果选公式计算值。
2. 追加表格数据
"追加表格数据"指令,往表格尾部加数据。
追加单元格:从哪个位置开始追加,选填,默认最后一个单元格。填A1就从A1开始。
追加内容:字符串或列表。填字符串追加一行的一列,填列表追加一行多列或多行多列——根据数据类型自动填充。
3. 写入表格数据
"写入表格数据"指令,往指定位置写数据。
写入区域:跟读取一样,单元格A1、行1、列A、区域A1:B2。
4. 其他操作
- 读取总行/列数:知道表格有多少数据
- 删除行列:删指定位置的行或列
- 插入行列:在指定位置插入空行空列
- 查找文本:在表格里找指定内容的位置
- 单元格填充图片:往单元格里插图片
四、飞书多维表格
多维表格是飞书的结构化数据表,类似Airtable。跟在线表格的区别是:多维表格有字段类型(文本、数字、日期、单选、多选等),适合存结构化数据。
多维表格的标识
app_token:多维表格的唯一标识符。从多维表格URL里复制。

比如URL是https://xxx.feishu.cn/base/bascnxxxxxx,bascnxxxxxx就是app_token。
table_id:数据表的ID。一个多维表格里可以有多个数据表,每个表有自己的table_id。
多维表格触发器
影刀支持飞书多维表作为触发器——多维表格新增行记录时自动触发流程。
配置步骤:
- 飞书开放平台创建应用,开通权限:检索特定记录、获取数据表信息、订阅云文档事件
- 发布应用版本,审核通过
- 多维表格添加应用,设为"可管理"
- 影刀控制台新建高级任务计划,选"飞书多维表"→"新增行记录"
- 填AppId和AppSecret验证账号
- 填app_token,选数据表
- 获取回调URL,回到飞书开发者后台配置事件订阅
- 添加事件
drive.file.bitable_record_changed_v1(多维表格记录变更) - 发布应用版本
- 测试:在多维表格新增一行记录,看流程是否触发
用HTTP请求操作多维表格
影刀没有专门的多维表格读写指令(在线表格有,多维表格要用HTTP请求调API)。
获取token:
POST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal
Content-Type: application/json
{
"app_id": "你的AppId",
"app_secret": "你的AppSecret"
}
返回的tenant_access_token放在后续请求的Header里:Authorization: Bearer {token}。
查询记录:
GET https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records
Authorization: Bearer {token}
新增记录:

POST https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records
Authorization: Bearer {token}
Content-Type: application/json
{
"fields": {
"商品名称": "手机壳",
"价格": 29.9,
"采集时间": "2024-06-26 10:00:00"
}
}
fields里的key是字段名,value是对应类型的值。
更多飞书集成实战案例可以到 home.linyan.cloud 查看完整项目代码。
五、完整案例:电商采集→飞书告警→多维表格入库
流程设计
打开电商网页
循环相似元素(商品列表)
获取文本内容(标题)
获取文本内容(价格)
价格转浮点数
if price > 价格阈值:
飞书群通知(文本告警)
else:
HTTP请求(新增多维表格记录)
等待1-3秒随机延时
点击下一页
判断是否还有下一页
关键踩坑
坑1:token过期
飞书的tenant_access_token有效期2小时。如果你的流程跑了超过2小时,token会过期,后续请求全部401。
解决:每次循环前判断token是否快过期,快过期了重新获取。或者在HTTP请求返回401时重新获取token再重试。
坑2:权限不足
应用权限没开全。多维表格需要这些权限:
base:record:read(读取记录)base:record:write(写入记录,需手动添加)base:table:read(获取数据表信息)
光在应用里开权限不够,还要在多维表格里把应用加为"可管理"。
坑3:字段类型不匹配
多维表格的字段有类型约束。你的价格字段是数字类型,你传字符串"29.9"进去会报错。
解决:传对应类型的数据。数字传float,日期传时间戳或格式化字符串,单选传选项名称字符串。
坑4:飞书在线表格vs多维表格选错
在线表格用"建立表格连接"指令,多维表格用HTTP请求调API。不要搞混了,两套体系完全不同。
在线表格适合做数据展示和简单存储,多维表格适合做结构化数据管理。采集数据入库用多维表格更合适,因为可以设置字段类型和视图筛选。
坑5:追加数据位置错误
飞书在线表格追加数据时,如果不填追加单元格位置,默认从最后一个有数据的单元格的下一行开始。但如果表格里有空行,它会从空行开始写,导致数据不连续。
解决:先读取总行数,然后指定从总行数+1的位置开始追加。
六、飞书集成 vs 其他通知方式
影刀还支持钉钉群通知和企业微信群通知,配置方式类似:
- 钉钉:群机器人→添加机器人→获取Webhook地址+密钥
- 企业微信:群机器人→添加机器人→获取Webhook地址
- 飞书:群机器人→添加机器人→获取Webhook地址
选哪个看你们公司用哪个。飞书的优势是多维表格功能强,适合做数据看板。钉钉和企业微信更偏消息通知。

如果是简单的异常告警,三个都行。如果要数据入库+可视化看板,飞书多维表格是首选。
七、调试技巧
飞书集成出问题,排查顺序:
- 先测Webhook地址:用浏览器或Postman手动发一条请求,看机器人能不能收到消息
- 再测应用权限:用获取token接口看能不能正常返回token
- 最后测具体操作:用查询记录接口看能不能读到数据
HTTP请求的响应内容一定要打印日志看。返回的JSON里有错误码和错误信息,飞书的错误码可以在飞书官网查。
# 打印HTTP响应
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.text}")
常见错误码:
- 99991663:token无效或过期
- 99991661:权限不足
- 1254003:app_token不存在
- 1254040:table_id不存在
内容标签:影刀RPA、飞书集成、Webhook机器人、多维表格、飞书在线表格、API认证、消息通知
作者:林焱
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)