做电商数据采集,每天早上的第一件事是:打开飞书表格,看昨天的数据更新没。
更高效的做法是:影刀采集完数据,自动写入飞书表格,然后在群里发一条消息:“今日数据已更新,共采集1250条”。
飞书开放了API和机器人能力,影刀可以直接调用,不需要打开飞书网页。
这篇讲三个核心操作:读取飞书表格作为任务清单、写入采集结果、自动发送群消息通知。
一、准备工作:获取飞书API凭证
需要提前准备:
- 飞书开发者后台创建一个企业自建应用
- 获取
app_id和app_secret - 开启“机器人”能力,获取
webhook地址(用于发消息) - 获取要操作的表格的
spreadsheet_token(表格链接里的一串ID)
详细步骤(一次性配置):
- 登录飞书开放平台 → 创建企业自建应用 → 命名“影刀RPA”
- 在“凭证与基础信息”里复制
App ID和App Secret - 在“机器人”里开启机器人,复制
Webhook URL
4. 在“权限管理”中添加:
sheets:sheet:readonly(读取表格)sheets:sheet:write(写入表格)im:message:send(发送消息)
- 发布应用,等待审核(自建应用通常秒过)
获取表格token:打开飞书表格,URL格式为https://xxx.feishu.cn/sheets/XXXXXXXXX,最后那串XXXXXXXXX就是spreadsheet_token。
二、核心指令:发送HTTP请求(调用飞书API)
影刀里所有跟飞书API的交互,都用“发送HTTP请求”指令。
操作步骤:
- 右侧指令面板搜索“发送HTTP请求”
2. 配置方法、URL、Headers、Body
- 返回结果存到变量,再用“解析JSON”提取数据
三、场景1:读取飞书表格作为任务清单
场景:你有一个飞书表格,A列是商品关键词,B列是目标采集页数。影刀读取后逐个处理。
步骤:
3.1 先获取tenant_access_token
调用飞书API前需要先拿到访问凭证。
发送HTTP请求指令配置:
方法:POST
URL:https://open.feifan.com/open-apis/auth/v3/tenant_access_token/internal
Headers:Content-Type: application/json
Body:
{
“app_id”: “你的app_id”,
“app_secret”: “你的app_secret”
}
返回示例:{“code”:0,“tenant_access_token”:“t-xxx”,“expire”:7200}
用“解析JSON”取出
tenant_access_token,存到变量飞书_TOKEN。
3.2 读取表格内容
发送HTTP请求指令配置:
方法:GET
URL:https://open.feifan.com/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/Sheet1!A1:B100
Headers:
Authorization: Bearer {飞书_TOKEN}
Content-Type: application/json
返回:{“data”:{“valueRange”:{“values”:[[“连衣裙”,10],[“T恤”,5]]}}}
用“解析JSON”提取data.valueRange.values,得到一个二维列表,第一行通常是表头。
注意:飞书API单次最多返回5000行,超出需要分页。一般任务清单不超过200行,够用了。
3.3 在影刀里使用读取的数据
# 解析后的二维列表结构:
# [[“关键词”,“页数”], [“连衣裙”, 10], [“T恤”, 5]]
# 用“列表循环”从索引1开始(跳过表头)
列表循环(列表:{表格数据},起始索引:1)
当前行 = {当前列表项}
关键词 = {当前行[0]}
页数 = {当前行[1]}
# 调用采集子流程
调用 B_拼多多采集(输入:关键词,页数)
四、场景2:写入采集结果到飞书表格
场景:采集完成后,把结果追加到飞书表格的另一张Sheet。
步骤:
4.1 准备写入的数据
采集到的数据是一个二维列表,比如:
[[“连衣裙”,“¥99.9”,“1.2w”],
[“T恤”,“¥49.9”,“3.5w”]]
4.2 获取当前最后一行
先查询目标Sheet的最后一行行号,避免覆盖已有数据。
发送HTTP请求:
GET https://open.feifan.com/open-apis/sheets/v2/spreadsheets/{token}/values/结果Sheet!A:A
返回的values长度就是已用行数。新数据起始行 = 长度 + 1。
4.3 批量追加写入
方法:POST
URL:https://open.feifan.com/open-apis/sheets/v2/spreadsheets/{token}/values_append
Headers:
Authorization: Bearer {飞书_TOKEN}
Content-Type: application/json
Body:
{
“range”: “结果Sheet!A1”,
“values”: [[“连衣裙”,“¥99.9”,“1.2w”], [“T恤”,“¥49.9”,“3.5w”]]
}
注意:values_append会自动在最后一行后面追加,不需要自己计算行号。但如果想插入指定位置,用values_update。
五、场景3:飞书群消息通知
场景:采集完成后,在群里发一条汇总消息。
方法:用飞书机器人的webhook地址,发送POST请求。
操作步骤:
- 复制机器人的Webhook URL(格式:
https://open.feifan.com/open-apis/bot/v2/hook/xxxxx) - 在流程末尾拖入“发送HTTP请求”
发送HTTP请求配置:
方法:POST
URL:{webhook地址}
Headers:Content-Type: application/json
Body:
{
“msg_type”: “text”,
“content”: {
“text”: “【影刀RPA通知】\n关键词:连衣裙\n采集完成时间:2025-01-15 10:30:00\n总采集数:1250条\n成功率:98.5%\n详情请查看表格:https://xxx.feishu.cn/sheets/xxx”
}
}
更丰富的消息格式(卡片消息):
{
“msg_type”: “interactive”,
“card”: {
“config”: {
“wide_screen_mode”: true
},
“header”: {
“title”: {
“tag”: “plain_text”,
“content”: “拼多多采集完成”
}
},
“elements”: [
{
“tag”: “div”,
“text”: {
“tag”: “lark_md”,
“content”: “**关键词**:连衣裙\n**采集页数**:10页\n**商品总数**:1250条\n**新增商品**:340条”
}
},
{
“tag”: “action”,
“actions”: [
{
“tag”: “button”,
“text”: {
“tag”: “plain_text”,
“content”: “查看表格”
},
“url”: “https://xxx.feishu.cn/sheets/xxx”
}
]
}
]
}
}
六、完整实战:飞书驱动的采集任务
流程图:
1. 读取飞书表格“任务清单”Sheet → 得到关键词列表
2. 列表循环遍历每个关键词
├─ 调用拼多多采集子流程
├─ 采集结果暂存内存(不写飞书)
└─ 完成一个关键词后,输出日志
3. 所有关键词采集完成
4. 将所有结果合并,批量写入飞书表格“采集结果”Sheet(覆盖或追加)
5. 发送飞书群消息通知:总采集数、成功率
6. 可选:更新“任务清单”Sheet中每个关键词的状态列(“已完成”)
关键:批量写入而非逐条写入
飞书API有频率限制(约5次/秒)。如果1000条数据逐条写入会触发限流。建议在影刀里用Python代码组装好整个二维列表,一次性写入。
七、常见问题/易错速查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 返回401 Unauthorized | token过期了 | 重新获取tenant_access_token(有效期2小时),可在流程开头获取一次复用 |
| 返回403 Forbidden | 应用权限不足 | 去飞书开发者后台添加sheet和im权限,重新发布 |
| 写入返回成功但表格没变化 | range参数写错了Sheet名 | 检查Sheet名称是否大小写敏感 |
| 批量写入超过5000行 | API限制单次最多5000行 | 分批写入,每批4000行 |
| webhook发消息失败 | 消息内容格式错误 | 用飞书官方消息调试工具验证JSON |
| 社区版调用API是否占时长 | 发送HTTP请求不占用30分钟额度 | 放心用,API调用不计入RPA运行时间 |
八、飞书API vs 影道飞书指令
影刀自带“飞书”指令模块(需要安装插件),但功能有限。
| 对比 | 飞书API(HTTP请求) | 影刀飞书指令 |
|---|---|---|
| 读表格 | ✅ 支持 | ❌ 不支持 |
| 写表格 | ✅ 支持 | ❌ 不支持 |
| 发消息 | ✅ 支持 | ✅ 支持(简单文本) |
| 发卡片 | ✅ 支持 | ❌ 不支持 |
| 配置复杂度 | 稍高(需获取token) | 低(填webhook即可) |
建议:只发消息用影刀飞书指令;需要读写表格必须用API方式。
推荐资源
飞书开放平台文档:搜索“飞书 sheet API”,有完整的接口列表和调试工具。
影刀官方飞书集成教程:在影刀学院搜索“飞书API”,有视频演示发送HTTP请求配置。
我封装的飞书子流程模板:
C_飞书_获取Token:输入app_id/app_secret,输出tokenC_飞书_读取表格:输入spreadsheet_token和range,输出二维列表C_飞书_写入表格:输入spreadsheet_token、sheet名、数据列表C_飞书_发送消息:输入webhook和文本内容
最后说一句:
把飞书和影刀打通后,我从“每天手工发数据”变成了“自动化跑完自动通知团队”。老板在群里看到消息直接点链接看表格,再也没催过我。
飞书API的配置看起来有点麻烦,但只需要做一次(获取app_id和webhook)。之后写进子流程模板,每个采集任务复用就行了。
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
