飞书多维表格的记录链接,如何获取?
在飞书多维表格中,右键点击一条记录,复制记录链接,即可得到如 https://example.feishu.cn/record/******** 格式的一条链接。

目前影刀市场指令中飞书多维表格的系列指令,是不包含获取此“记录链接”的相关指令的。于是,只能来找找飞书开发平台,尝试找到相关的接口来实现。
打开飞书开发平台,搜索关键词“分享记录链接”,即得到结果如下:
💡 使用飞书【批量获取记录】的API,通过传入 record_ids,再从响应体中,提取出 shared_url,就可以得到记录的分享链接。从示例中的shared_url 来看,也确实符合 https://example.feishu.cn/record/******** 的格式。

进入 API 文档再详细阅读一遍,梳理以下内容:
1. 请求头:需要通过 【自建应用获取 tenant_access_token】获取 tenant_access_token 作为 access_token
2. 路径参数:需要从多维表格的链接中,获取 app_token 和 table_id
3. 请求体:
1)record_ids 是必填项,且需要以列表的格式传入。假如我只需要查单个记录id的分享链接,我希望传入的是字符串格式的记录id,则需要在代码中对数据做一次处理;
2)with_shared_url 其实也是必填项,因为只有 with_shared_url 的值为 true 时,才会返回分享链接;
整理完上述内容,可以得到一份代码如下:
import requests
from typing import *
try:
from xbot.app.logging import trace as print
except:
from xbot import print
def get_feishu_bitable_records(app_id, app_secret, app_token, table_id, record_ids):
"""
title: 获取飞书多维表格记录分享链接
description: 通过飞书开放接口获取多维表格(Bitable)中的记录数据,首先获取应用%app_id%的访问令牌,然后获取表格%table_id%中指定%record_ids%的记录内容。
inputs:
- app_id (str): 应用ID, eg: "cli_xxx"
- app_secret (str): 应用 Secret, eg: "xxx"
- app_token (str): 多维表格 Token, eg: "xxx"
- table_id (str): 多维表格 ID, eg: "tbl_xxx"
- record_ids (str): 记录 ID, eg: "rec_xxx"
outputs:
- shared_link (str): 分享链接, eg: "https://xxx"
"""
def _get_tenant_access_token(app_id, app_secret):
url = 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal'
headers = {
'Content-Type': 'application/json; charset=utf-8'
}
body = {
"app_id": app_id,
"app_secret": app_secret
}
response = requests.post(url=url, headers=headers, json=body)
response_json = response.json()
if response_json.get('code') != 0:
error_msg = f"获取访问令牌失败: {response_json}"
raise Exception(error_msg)
return response_json.get('tenant_access_token')
def _get_records(access_token, app_token, table_id, record_ids):
url = f'https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_get'
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json; charset=utf-8'
}
body = {
"record_ids": record_ids.split(','),
"with_shared_url": "true"
}
response = requests.post(url=url, headers=headers, json=body)
result = response.json()['data']['records'][0]['shared_url']
return result
access_token = _get_tenant_access_token(app_id, app_secret)
shared_link = _get_records(access_token, app_token, table_id, record_ids)
return shared_link将此代码,投喂给✨魔法指令,即可得到一个封装好的指令:

在这个魔法指令中,你需要完成 应用id(app_key)、应用密钥(app_secret)、多维表格token、多维表格id 的基本配置,至于 记录id,可以用变量的方式进行传递。
