欢迎光临
我们一直在努力

影刀RPA实操指南_飞书文档自动生成每日周报月报自动写入多维表格与云文档

影刀RPA实操指南:飞书文档自动生成每日周报月报自动写入多维表格与云文档

你的团队用飞书协作,每天要往文档里贴数据。

打开飞书文档,找到对应的位置,把昨天的数据复制粘贴进去,调下格式,@几个人。

每天十分钟,一个月三小时——全花在了"粘贴"上。

有没有想过:影刀能不能直接操作飞书文档?

能。而且有官方API支持,比模拟网页操作稳定得多。

在这里插入图片描述


方案选型:API还是网页模拟

方案稳定性开发难度适用场景
飞书开放API ⭐⭐⭐⭐⭐ ⭐⭐⭐ 长期运行的自动化
网页模拟操作 ⭐⭐ 临时或一次性任务
飞书多维表格API ⭐⭐⭐⭐ ⭐⭐ 结构化数据写入

强烈推荐API方案。飞书的开放API非常完善,文档生成、多维表格操作、消息发送都有对应接口。


前置准备:获取飞书API凭证

第一步:创建飞书应用

在这里插入图片描述

  • 打开 飞书开放平台
  • 创建企业自建应用
  • 给应用起个名字,比如"数据报告机器人"
  • 获取 App ID 和 App Secret
  • 第二步:配置权限

    给应用添加以下权限:

    • docx:document:write — 编辑云文档
    • docx:document:read — 读取云文档
    • drive:drive — 访问云空间

    拼多多店群自动化上架方案

    • bitable:app — 操作多维表格

    这些权限需要管理员审批。

    在这里插入图片描述

    第三步:获取tenant_access_token

    飞书API几乎所有接口都需要先获取token:

    import requests

    def get_tenant_token(app_id, app_secret):
    url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
    resp = requests.post(url, json={
    "app_id": app_id,
    "app_secret": app_secret
    })
    return resp.json()['tenant_access_token']

    token = get_tenant_token('your_app_id', 'your_app_secret')

    token有效期2小时,生产环境建议缓存到过期前5分钟再刷新。


    实战一:写入飞书多维表格

    多维表格是最适合存自动化数据的地方。

    在这里插入图片描述

    获取多维表格的table_id

    多维表格URL格式:https://xxx.feishu.cn/base/BASE_ID?table=TABLE_ID

    从URL中提取 BASE_ID 和 TABLE_ID。

    批量写入数据

    import requests

    def add_records(app_token, table_id, records):
    """批量写入多维表格"""
    url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_create"
    headers = {
    "Authorization": f"Bearer {token}",
    "Content-Type": "application/json"
    }

    # 构建记录列表
    record_list = []
    for r in records:
    fields = {}
    for key, value in r.items():
    fields[key] = value
    record_list.append({"fields": fields})

    body = {"records": record_list}
    resp = requests.post(url, headers=headers, json=body)
    return resp.json()

    # 使用
    add_records(
    app_token='Bascbxxxxx',
    table_id='tblxxxxx',
    records=[
    {"日期": "2024-01-15", "销售额": 25800, "订单数": 156},
    {"日期": "2024-01-16", "销售额": 31200, "订单数": 189}
    ]
    )

    注意事项:

    • 单次最多写入500条
    • 字段名必须和表格中的字段名完全一致
    • 时间字段建议用字符串格式 "2024-01-15" 以免时区问题
    • 在这里插入图片描述

    先清空再写入(日报场景)

    日报通常是"覆盖式"更新:

    def refresh_daily_records(app_token, table_id, records):
    """先删旧数据,再写新数据"""
    # 1. 获取所有现有记录
    existing = get_all_records(app_token, table_id)

    # 2. 批量删除
    if existing:
    delete_url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_delete"
    record_ids = [r['record_id'] for r in existing]
    requests.delete(delete_url, headers=headers, json={"records": record_ids})

    # 3. 写入新数据
    add_records(app_token, table_id, records)


    实战二:向飞书云文档追加内容

    飞书文档API(Docx)支持向已有文档追加段落。

    获取文档ID

    文档URL格式:https://xxx.feishu.cn/docx/DOC_ID

    在这里插入图片描述

    追加文本段落

    def append_to_docx(doc_id, content_blocks):
    """向文档末尾追加内容块"""
    # 1. 获取文档结构
    url = f"https://open.feishu.cn/open-apis/docx/v1/documents/{doc_id}/blocks"
    headers = {"Authorization": f"Bearer {token}"}
    resp = requests.get(url, headers=headers)
    document_id = resp.json()['data']['document']['document_id']
    page_id = resp.json()['data']['document']['blocks'][0]['block_id']

    # 2. 构建要追加的block
    blocks = []
    for i, content in enumerate(content_blocks):
    block = {
    "block_type": 2, # 2=文本段落
    "text": {
    "elements": [
    {"text_run": {"content": content}}
    ]
    }
    }
    blocks.append(block)

    # 3. 批量创建block
    create_url = f"https://open.feishu.cn/open-apis/docx/v1/documents/{document_id}/blocks/{page_id}/children"
    body = {
    "children": blocks,
    "index": 1 # -1表示追加到末尾
    }
    resp = requests.post(create_url, headers=headers, json=body)
    return resp.json()

    飞书文档API的门槛:比多维表格API复杂不少,有block_type、block_id、parent_id等概念。初次使用建议先在开放平台的API调试器里试一下。


    实战三:根据模板生成飞书文档

    很多场景是"固定模板+动态数据":

    def generate_report_from_template(template_doc_id, data):
    """复制模板并填充数据"""
    # 1. 复制模板文档
    copy_url = f"https://open.feishu.cn/open-apis/drive/v1/files/{template_doc_id}/copy"
    headers = {"Authorization": f"Bearer {token}"}
    body = {
    "name": f"销售日报-{data['date']}",
    "type": "docx"
    }
    resp = requests.post(copy_url, headers=headers, json=body)
    new_doc_id = resp.json()['data']['document']['document_id']

    # 2. 在文档中查找并替换占位符
    ![在这里插入图片描述](https://iblog.csdnimg.cn/direct/bc07fb3bca5f492097847fff213288af.png#pic_center)

    # 注意:飞书API没有原生"查找替换",需要通过block操作实现
    # 简化版:在末尾追加数据部分
    append_to_docx(new_doc_id, [
    f"## 今日数据 ({data['date']})",
    f"- 销售额:¥{data['sales']:,}",
    f"- 订单数:{data['orders']}",
    f"- 客单价:¥{data['avg_price']:.2f}"
    ])

    return new_doc_id


    实战四:完整自动化链路

    TEMU店群如何管理运营?

    把数据采集、处理、写入飞书串联起来:

    影刀主流程:
    ├─ 1. 电商平台数据采集(影刀网页操作)
    ├─ 2. 数据清洗与汇总(Python pandas)
    ├─ 3. 写入飞书多维表格(Python调用API)
    │ – 每日销售明细 → 多维表格"销售日报"
    ├─ 4. 生成飞书云文档报告(Python调用API)
    │ – 复制模板 → 填充数据 → 获取文档链接
    ├─ 5. 发送飞书消息通知(影刀或API)
    │ – @相关人:今日报告已生成 [文档链接]
    └─ 6. 日志记录


    避坑指南

    坑1:token过期

    在这里插入图片描述

    API返回 99991663 或 tenant_access_token invalid:

    # 封装自动刷新
    import time

    class FeishuClient:
    def __init__(self, app_id, app_secret):
    self.app_id = app_id
    self.app_secret = app_secret
    self.token = None
    self.token_expire = 0

    def get_token(self):
    if time.time() > self.token_expire 300: # 提前5分钟刷新
    self._refresh_token()
    return self.token

    def _refresh_token(self):
    resp = requests.post(...)
    self.token = resp.json()['tenant_access_token']
    self.token_expire = time.time() + 7100 # 2小时-100秒缓冲

    坑2:多维表格字段名不匹配

    多维表格的字段名区分大小写,“销售额"和"销售 额”(有个空格)是不一样的。

    建议:先在API调试器里 GET 一次表格结构,确认字段名。

    坑3:写入频率限制

    飞书API有频率限制,多维表格写入是 每秒10次。

    在这里插入图片描述

    大量数据写入时加延时:

    import time
    for i, batch in enumerate(batches):
    add_records(batch)
    if i > 0 and i % 10 == 0:
    time.sleep(1) # 每10批休息1秒


    总结

    飞书开放的API让影刀的自动化链路可以延伸到飞书生态:

    • 多维表格API → 结构化数据存储和展示
    • 云文档API → 自动生成报告文档
    • 消息API → 通知相关人员

    三件套配合影刀的网页采集能力,流程从"数据采集 → 处理 → 呈现 → 通知"全链路无人值守。

    在这里插入图片描述

    API方案比网页模拟稳定10倍,值得花时间配置。


    内容标签:#影刀RPA #飞书 #多维表格 #API #自动化报告 作者:林焱 系列:影刀RPA实操指南系列——打通自动化链路的最后一环

    赞(0)
    未经允许不得转载:171主机测评 » 影刀RPA实操指南_飞书文档自动生成每日周报月报自动写入多维表格与云文档
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址