文档备案控制台
免费开始使用

影刀RPA实操指南:飞书表格自动读写与消息通知联动

做电商数据采集,每天早上的第一件事是:打开飞书表格,看昨天的数据更新没。

更高效的做法是:影刀采集完数据,自动写入飞书表格,然后在群里发一条消息:“今日数据已更新,共采集1250条”。

picture.image

飞书开放了API和机器人能力,影刀可以直接调用,不需要打开飞书网页。

这篇讲三个核心操作:读取飞书表格作为任务清单、写入采集结果、自动发送群消息通知。

picture.image

一、准备工作:获取飞书API凭证

需要提前准备

picture.image

  1. 飞书开发者后台创建一个企业自建应用
  2. 获取app_idapp_secret
  3. 开启“机器人”能力,获取webhook地址(用于发消息)
  4. 获取要操作的表格的spreadsheet_token(表格链接里的一串ID)

picture.image 详细步骤(一次性配置):

  1. 登录飞书开放平台 → 创建企业自建应用 → 命名“影刀RPA”
  2. 在“凭证与基础信息”里复制App IDApp Secret
  3. 在“机器人”里开启机器人,复制Webhook URL

picture.image 4. 在“权限管理”中添加:

  • sheets:sheet:readonly(读取表格)
  • sheets:sheet:write(写入表格)
  • im:message:send(发送消息)
  1. 发布应用,等待审核(自建应用通常秒过)

picture.image

获取表格token:打开飞书表格,URL格式为https://xxx.feishu.cn/sheets/XXXXXXXXX,最后那串XXXXXXXXX就是spreadsheet_token

二、核心指令:发送HTTP请求(调用飞书API)

picture.image 影刀里所有跟飞书API的交互,都用“发送HTTP请求”指令。

操作步骤

  1. 右侧指令面板搜索“发送HTTP请求

picture.image 2. 配置方法、URL、Headers、Body

  1. 返回结果存到变量,再用“解析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}

picture.image 用“解析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 准备写入的数据

picture.image 采集到的数据是一个二维列表,比如:

[[“连衣裙”,“¥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请求。

操作步骤

  1. 复制机器人的Webhook URL(格式:https://open.feifan.com/open-apis/bot/v2/hook/xxxxx
  2. 在流程末尾拖入“发送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 Unauthorizedtoken过期了重新获取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,输出token
  • C_飞书_读取表格:输入spreadsheet_token和range,输出二维列表
  • C_飞书_写入表格:输入spreadsheet_token、sheet名、数据列表
  • C_飞书_发送消息:输入webhook和文本内容

最后说一句
把飞书和影刀打通后,我从“每天手工发数据”变成了“自动化跑完自动通知团队”。老板在群里看到消息直接点链接看表格,再也没催过我。

飞书API的配置看起来有点麻烦,但只需要做一次(获取app_id和webhook)。之后写进子流程模板,每个采集任务复用就行了。

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论