本文档记录了如何通过 python 代码将文本信息自动保存到指定的飞书多维表格(base/bitable)中。主要包含飞书开放平台的配置、表格授权以及环境安装步骤。
一、 飞书开放平台配置
在使用代码之前,需要先创建一个“机器人”身份并赋予相应权限。
创建应用:登录 飞书开放平台,创建一个企业自建应用。
配置权限:进入应用的“权限管理”页面,搜索并开通以下权限(scope):
bitable:app (查看、评论、编辑和管理多维表格)
base:record:create (新增记录)
二、 获取多维表格信息
代码中需要定位到具体的表格,需要从浏览器地址栏中获取以下两个 id。
打开目标多维表格:使用浏览器访问你需要写入数据的表格。
提取 id:观察浏览器地址栏的 url,格式通常如下:https://base_url/base/{app_token}?table={table_id}
- app token:紧跟在
base/后面的那串字符。 - table id:url 参数中
table=后面的那串字符。
三、 文档授权(关键步骤)
仅有 api 权限是不够的,还需要将应用“拉入”具体的文档中,否则会报错 forbidden (91403)。
- 在多维表格页面右上角,点击 “…”(菜单按钮)。
- 选择 “更多” -> “添加文档应用”。
- 在搜索框中输入你在第一步创建的应用名称。
- 点击添加,并务必勾选 “可编辑” 权限。
四、 安装环境
在本地 python 环境中安装飞书官方 sdk:
pip install lark-oapi
五、 代码实现
完成以上配置后,将 app token、table id 以及应用的 app id 和 app secret 填入代码即可运行。
import lark_oapi as lark
from lark_oapi.api.bitable.v1 import *
# ================= 配置信息 =================
app_id = "cli_xxxx"
app_secret = "2jbe7yyyyyy"
app_token = "vvgbbvcozalrcfsxxxxxxx"
table_id = "tblmggt4yyyyyyy"
# ===========================================
def save_to_feishu_sdk(text_content):
# 1. 构建 client
client = lark.client.builder() \
.app_id(app_id) \
.app_secret(app_secret) \
.build()
# 2. 构造请求对象
# 注意:fields 中的 key 必须与表格列名一致
request = createapptablerecordrequest.builder() \
.app_token(app_token) \
.table_id(table_id) \
.request_body(apptablerecord.builder() \
.fields({
"消息内容": text_content
}) \
.build()) \
.build()
# 3. 发起请求
response = client.bitable.v1.app_table_record.create(request)
# 4. 处理结果
if not response.success():
print(f"请求失败, code: {response.code}, msg: {response.msg}")
return
print(f"保存成功! record id: {response.data.record.record_id}")
if __name__ == "__main__":
save_to_feishu_sdk("内容: 卖出:1000etf(159629.xshe:2.512) - 中证2000策略")
使用 requests 库(原生 api)
import requests
# ================= 配置信息 =================
app_id = "cli_xxxx"
app_secret = "2jbe7yyyyyy"
app_token = "vvgbbvcozalrcfsxxxxxxx"
table_id = "tblmggt4yyyyyyy"
# ===========================================
def get_tenant_access_token(app_id, app_secret):
"""获取访问凭证 (tenant_access_token)"""
url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
headers = {"content-type": "application/json; charset=utf-8"}
payload = {
"app_id": app_id,
"app_secret": app_secret
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
return response.json().get("tenant_access_token")
else:
raise exception(f"获取 token 失败: {response.text}")
def add_record(access_token, app_token, table_id, data_fields):
"""向多维表格添加一条记录"""
url = f"https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records"
headers = {
"authorization": f"bearer {access_token}",
"content-type": "application/json; charset=utf-8"
}
# 构建请求体
payload = {
"fields": data_fields # 这里的 keys 必须对应多维表格里的列名
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
def save_to_feishu(text_content):
try:
# 1. 获取 token
token = get_tenant_access_token(app_id, app_secret)
print("token 获取成功")
# 2. 准备要保存的数据
# 注意:字典的 key 必须完全匹配多维表格的【字段名称】
text_data = {
"消息内容": text_content
}
# 3. 写入数据
result = add_record(token, app_token, table_id, text_data)
if result.get("code") == 0:
print("数据保存成功!记录id:", result["data"]["record"]["record_id"])
else:
print("保存失败:", result)
except exception as e:
print("发生错误:", e)
if __name__ == "__main__":
save_to_feishu('内容: 卖出:1000etf(159629.xshe:2.512) - 中证2000策略')
到此这篇关于使用python sdk实现将数据写入飞书多维表格的文章就介绍到这了,更多相关python数据写入飞书多维表格内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论