影刀RPA实操指南:飞书文档自动生成每日周报月报自动写入多维表格与云文档
你的团队用飞书协作,每天要往文档里贴数据。
打开飞书文档,找到对应的位置,把昨天的数据复制粘贴进去,调下格式,@几个人。
每天十分钟,一个月三小时——全花在了"粘贴"上。
有没有想过:影刀能不能直接操作飞书文档?
能。而且有官方API支持,比模拟网页操作稳定得多。

方案选型:API还是网页模拟
| 飞书开放API | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 长期运行的自动化 |
| 网页模拟操作 | ⭐⭐ | ⭐ | 临时或一次性任务 |
| 飞书多维表格API | ⭐⭐⭐⭐ | ⭐⭐ | 结构化数据写入 |
强烈推荐API方案。飞书的开放API非常完善,文档生成、多维表格操作、消息发送都有对应接口。
前置准备:获取飞书API凭证
第一步:创建飞书应用

第二步:配置权限
给应用添加以下权限:
- 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. 在文档中查找并替换占位符

# 注意:飞书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实操指南系列——打通自动化链路的最后一环







