鉴于大量盗用和倒卖情况,现不再对外公开使用地址及具体参数。

准备工作

创建飞书应用


在飞书开发者后台创建一个应用,创建好后保存这个应用的 App IDApp Secret


权限管理>开通权限>多维表格 那里选择为这个应用开通访问多维表格的权限,或选择想使用的权限限。权限开通完毕,选择 版本管理与发布,创建版本并发布当前应用。

创建多为表格并与应用联通

创建自己想要使用的多维表格,并准备好表头字段,记录表格链接地址中的 table_id (table=xxxx&view 中的xxxx部分就是) 以及 table_token (base / xxxxxx / 中xxxx部分就是)。进入多维表格页面,打开右上角 ···,选择 “更多” ,选择 “添加文档应用”,在弹出的搜索框检索刚才创建的应用,点开添加进来。选择权限为“可编辑”

Dify工作流搭建

前置参数

开始需要配置参数依次为:大模型平台、大模型Apikey、需要解析的视频地址、飞书应用app_id、飞书应用app_secret、飞书多为表格app_token、飞书多为表格table_id、调用口令。
因为在制作时考虑多用户可同步到自己的文档中,所以流程开始除了视频链接、大模型平台、模型Apikey相关参数外,还需要填写有关飞书的参数,包括上文中提到的app_id、app_secret、table_id、bitable_app_token(就是app_token)作为变量在后续流程中使用,这样就可以让多用户使用后同步到自己的飞书文档中。调用口令存粹是自己做的东西做个署名,所以紧跟一个条件判断口令是否正确,正确的话就执行后面的流程。

媒体内容提取并复写

媒体内容解析提取文字并复写是作为共用模块通过接口请求下载视频到本地,提取视频文字后给到llm进行复写。

媒体相关信息获取

根据脚本提取如作者、浏览量、评论量等文章相关信息,另外如果有头像或者封面相关的信息也可以下载下来方便后续上传到飞书

上传飞书

因为飞书的tenant_access_token是有时效的,所以在数据处理完后获取飞书tenant_access_token,把前面提取的字段整理下套到模板里通过http请求上传到飞书。

进阶

飞书HTTP请求

整体流程走通后,可以通过飞书http请求,直接在多为表格中输入链接地址后请求dify的接口,实现在多为表格中输入地址后自动走dify流程,把视频信息和复写内容填入多为表格,无需在dify中操作。可查阅官方服务端api:https://open.feishu.cn/document/docs/bitable-v1/app-table-record/search

相关资料

接入指南

多维表格(Base)是飞书云文档下的一个产品。它可以是一个表格,也可以是无数个应用。warning
本文档已废弃,不再维护。你可参考多维表格概述了解本文内容。

形态

一篇多维表格可以理解成是一个应用(app),标记该应用的唯一标识叫 app_token

每篇多维表格是由多个数据表(table)组成的,标记该数据表的唯一标识叫 table_id

作为一个应用它会有多种形态存在;

可以作为一个独立应用存在,也可以作为一个模块(block)与飞书文档、飞书表格结合在一起。

飞书云文档中 飞书文档中 飞书表格中
Base app Base doc block Base sheet block
即在”飞书云文档“中新建的多维表格 即在”飞书文档“中插入的多维表格 即在”飞书表格“中新建的多维表格
URL 以 ==feishu.cn/base== 开头 URL 以 ==feishu.cn/docs==、==feishu.cn/docx== 开头 URL 以 ==feishu.cn/sheets== 开头
支持 支持 支持
飞书云文档中 飞书文档中 飞书表格中

*通过 API 在飞书表格(Sheets)中新建数据表暂时无法在页面看到,后续会支持;

内容

目前开放多维表格在App、数据表、视图、字段、记录、高级权限设置和高级权限协作者 7 种内容的 API 。

记录可以狭义的理解为表格行;

字段可以狭义的理解为表格的列;

注意:列出记录一次最多支持列出 500 条;

操作多条记录(限制在 500 条/次以下)的结果是全部成功或者全部失败,不存在部分结果。

同一时刻,对同一篇多维表格最好只请求一次 API 写操作。

鉴权

注意事项:- 在使用 tenant_access_token 前,请确保你的应用已经是文档的所有者或者协作者,否则会调用失败。(可以通过添加文档应用的方式将应用添加为协作者)

  • 多维表格大部分接口都支持通过 user_access_tokentenant_access_token 两种身份进行调用。但仍然有部分接口只支持其中一种身份,请开发者在调用前,仔细阅读对应接口的说明文档。

  • 使用 tenant_access_token 前,请确保你所使用的应用在云文档的协作者列表里。现阶段,你可以通过使用 tenant_access_token 来创建一篇多维表格,再使用 tenant_access_token 来进行进一步的操作。

user_access_token tenant_access_token
用户身份鉴权
token 最大有效期为2小时左右
当该token被刷新之后,老的 token 随即失效
应用身份鉴权
token 有效时间2小时
当token有效期<30分,可刷新得到新token
在2小时之内,新老token同时有效
获取用户身份访问凭证 获取应用身份访问凭证
适合小程序、网页应用等场景 适合纯后台服务等场景

限制

  • QPS 限制

  • 每个接口都有接口调用的频率限制,可参考频控策略

  • 对于接口的批量操作,单次最高 500 条记录,且响应状态是全部成功或者失败,不存在部分结果。

  • 接口报错

当请求不符合某些特定条件时会报错,如果因为部分参数不符合要求而导致报错,意味着当次请求所有的内容提交都失败了,不会对线上的数据造成影响。具体可参考:服务端错误码说明

字段类型

接口类型 支持 不支持
列出记录 全支持
新增记录
更新记录
多行文本、条码、单选、多选、日期、人员、附件、复选框、超链接、数字、单向关联、双向关联、电话号码、地理位置 公式
查找引用
列出字段 全支持
新增字段
更新字段
多行文本、条码、单选、多选、日期、数字、人员、附件、单向关联、双向关联、复选框、超链接、公式(不支持设置公式表达式)、创建人、修改人、创建时间、最后更新时间、自动编号、电话号码、地理位置 查找引用

参数说明

API 地址
https://open.feishu.cn/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id

  • app_token

    多维表格

在飞书云空间中打开一篇多维表格,URL 以 ==feishu.cn/base== 开头,该多维表格的 app_token 是下图框住部分:

app_token.png

知识库下的多维表格

知识库中的多维表格,URL 以 ==feishu.cn/wiki== 开头。此时,你需调用知识库相关获取知识空间节点信息接口获取多维表格的 app_token。

如下返回示例,当 obj_type 的值为 bitable 时,obj_token 字段的值==AW3Qbtr2cakCnesXzXVbbsrIcVT==是多维表格的 app_token:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"node":{
"space_id":"6946843325487912356",
"node_token":"wikcnKQ1k3p******8Vabcef",
"obj_token":"AW3Qbtr2cakCnesXzXVbbsrIcVT", // 多维表格的 app_token
"obj_type":"bitable",
"parent_node_token":"wikcnKQ1k3p******8Vabcef",
"node_type":"origin",
"origin_node_token":"wikcnKQ1k3p******8Vabcef",
"origin_space_id":"6946843325487912356",
"has_child":false,
"title":"标题",
"obj_create_time":"1642402428",
"obj_edit_time":"1642402428",
"node_create_time":"1642402428",
"creator":"ou_xxxxx",
"owner":"ou_xxxxx"
}
}

云文档嵌入多维表格

  • 调用获取文档所有块,在返回结果中检索,其中 bitable.token 字段的值 ==AW3Qbtr2cakCnesXzXVbbsrIcVTtblkIYhz52o6G5nx==是用 隔开的 app_token 和 table_id;
  • 1
    2
    3
    4
    5
    6
    7
    8
    {
    "bitable": {
    "token": "AW3Qbtr2cakCnesXzXVbbsrIcVT_tblkIYhz52o6G5nx"
    },
    "block_id": "Mgeadqo4CoeoOGxI7Lgb4GNicEd",
    "block_type": 18,
    "parent_id": "YUqpdO2eLo7xJdxy5RQbuQBdctf"
    }

    电子表格嵌入多维表格

  • 调用获取表格元数据,在返回结果中检索,其中 blockType 的值为 ==BITABLEBLOCK== 时,blockToken 字段的值==AW3Qbtr2cakCnesXzXVbbsrIcVT_tblkIYhz52o6G5nx==是用 隔开的 app_token 和 table_id;
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    "blockInfo": {
    "blockToken": "AW3Qbtr2cakCnesXzXVbbsrIcVT_tblkIYhz52o6G5nx",
    "blockType": "BITABLE_BLOCK"
    },
    "columnCount": 0,
    "frozenColCount": 0,
    "frozenRowCount": 0,
    "index": 0,
    "rowCount": 0,
    "sheetId": "***",
    "title": "*** "
    }
  • table_id

    多维表格

  • 打开一篇多维表格,其 URL 中 table_id 是下图中框住部分:
    table_id.png

  • 对于其它场景的多维表格,需要通过列出数据表接口获取

  • view_id

  • 打开任意一篇多维表格,其 URL 中 view_id 是下图中框住部分:
    view_id.png
  • 或者通过列出视图接口获取。暂时无法获取到嵌入到云中多维表格的 view_id

  • record_id

  • 需要通过列出记录接口获取

  • field_id

  • 需要通过列出字段接口获取

  • role_id

  • 需要通过列出自定义权限接口获取

  • member_id

  • 需要通过列出协作者接口获取

获取访问凭证

为了提升 API 调用的安全性,飞书开放平台设计了访问凭证(access_token)机制,调用 API 获取应用资源时,需要通过 access_token 对调用者身份进行鉴权,即告知飞书当前是谁、以什么身份获取什么租户的数据。

访问凭证是接入飞书开放平台的钥匙,将应用获得的所有数据访问和接口调用权限绑定在一起,允许应用对资源进行读写操作。建议开发者在正式开发前对飞书的访问凭证机制有充分的了解。

访问凭证介绍

飞书开放平台提供以下不同类型的访问凭证,用于对调用方身份进行鉴权。在实际开发过程中,你可以根据业务需要选择适用的访问凭证。

访问凭证类型 是否需要用户授权 说明
tenant_access_token 以应用身份调用 API 时需要使用的凭证,可读写的数据范围由应用的数据权限范围决定。该访问凭证适用于无需用户登录的自动化操作,例如应用机器人调用发送消息接口,向指定会话推送消息通知。
该类凭证的值以t-为前缀,示例值:t-24b5bf4e00b2af1234
user_access_token 以用户身份调用 API 时需要使用的凭证,可读写的数据范围由用户可读写的数据范围决定。该访问凭证适用于用户授权登录后代理用户的操作,例如,以 user_access_token 调用创建多维表格接口,创建出来的多维表格的所有者是 user_access_token 对应的用户。
- 使用新版本接口(获取 user_access_token刷新 user_access_token)返回的 user_access_token 示例值为 eyJhbGciOiJFUzI1NiIs**********X6wrZHYKDxJkWwhdkrYg
- 其他历史版本接口返回的凭证值以u-为前缀,示例值为 u-Lr1RT7S8fS03mT1234
app_access_token 应用身份的短期令牌。开放平台根据 app_access_token 识别调用方的应用身份。
该类凭证的值以a-或者t-为前缀,示例值:a-24b5cef00b1234

如何选择不同类型的访问凭证

API 可能支持一种或多种访问凭证,不同的访问凭证代表不同的资源访问权限,因此,使用不同的访问凭证获取到的数据信息可能不同。

  1. 确认 API 支持的访问凭证。

在调用 API 时,访问凭证需要填充到 HTTP 请求头中。在开放平台 API 文档的请求头部分,可查阅该 API 支持的访问凭证类型。

  1. 选择合适的访问凭证。warning
    由于app_access_token的使用场景比较少(一般用于 商店应用获取 tenant_access_token),飞书开放平台正在逐步统一app_access_tokentenant_access_token两个凭证。因此这里主要介绍tenant_access_tokenuser_access_token
  • tenant_access_token

如果你的业务逻辑不需要操作用户的数据资源,仅需操作应用自身拥有的资源,例如在应用自身的文档目录空间下创建云文档,则推荐使用 tenant_access_token,无需额外申请授权。

  • user_access_token

如果你的业务逻辑需要操作用户的数据资源,例如需要在用户的文档目录空间下创建云文档,则推荐使用 user_access_token,无需额外申请授权。

该情况下如果使用 tenant_access_token,则需额外在资源层面为应用添加相应的授权。例如,如果使用 tenant_access_token 调用通讯录,则需在飞书开发者后台的权限管理页面配置应用的通讯录权限范围;而使用 user_access_token 则无需单独配置通讯录权限范围,遵循 user_access_token 所属用户的通讯录权限范围。

获取方式

本章节介绍企业自建应用、商店应用如何获取相应的 access_token。
访问凭证存在有效期(在调用获取访问凭证接口后,会返回有效期字段)。开发者需要在自己的服务端设置定时刷新凭证的业务逻辑,以防止过期。如果在当前凭证过期前重新获取凭证,则会拿到与原值相同的值,但每次返回的剩余有效时间会发生变化,如下图所示。

  • 获取自建应用的 tenant_access_token
  1. 登录开发者后台,选择指定的自建应用。

  2. 基础信息 > 凭证与基础信息 页面,获取应用凭证 App IDApp Secret

  1. 调用自建应用获取 tenant_access_token 接口,通过应用凭证 App ID 和 App Secret 获取自建应用的tenant_access_token
  • 获取自建应用的 app_access_token
  1. 登录开发者后台,选择指定的自建应用。

  2. 基础信息 > 凭证与基础信息 页面,获取应用凭证 App IDApp Secret

  1. 调用自建应用获取 app_access_token 接口,通过应用凭证 App ID 和 App Secret 获取自建应用的app_access_token
  • 获取商店应用的 app_access_token
  1. 获取 app_ticket。

  2. 为商店应用配置事件订阅请求地址。

具体操作参见配置请求地址。完成配置后,飞书会每隔 1 小时向该地址自动推送最新的 app_ticket,应用根据接收到的 app_ticket 事件来获取并保存app_ticket,以便后续使用。

  1. (可选)调用重新获取 app_ticket 接口,触发飞书重新推送 app_ticket

app_ticket 推送可能存在延迟,如果没有收到推送,可以使用该方式重新推送 app_ticket

  1. 获取应用凭证 App ID 和 App Secret。

  2. 登录开发者后台,选择指定的自建应用。

  3. 基础信息 > 凭证与基础信息 页面,获取应用凭证 App IDApp Secret

  1. 调用商店应用获取 app_access_token 接口,通过应用凭证 App ID 和 App Secret、以及 app_ticket 获取商店应用的app_access_token
  • 获取商店应用的 tenant_access_token
    请先获取并保存商店应用的 app_access_token,再获取商店应用的 tenant_access_token。
  1. 获取 tenant_key。

tenant_key为租户在飞书上的唯一标识,用来换取对应的 tenant_access_token,也可以用作租户在应用里面的唯一标识,可以通过如下方式获取:

  • 企业开通应用时,开放平台推送给应用的tenant_key数据,具体可参考首次启用应用

  • 用户登录到小程序、H5 应用或者浏览器应用时,在用户的身份信息中获取。

  1. 调用商店应用获取 tenant_access_token 接口,通过app_access_tokentenant_key获取商店应用的tenant_access_token
  • 获取 user_access_token

本章节以应用的网页应用功能为例介绍如何获取 user_access_token。
获取 user_access_token 的方式同时适用于企业自建应用和商店应用。

  1. 登录开发者后台,选择指定应用。

  2. 开发配置 > 安全设置 页面,配置重定向 URL。

你需要将实际发起 API 请求的服务端公网地址配置为应用的重定向 URL。重定向 URL 支持配置多个,只有在重定向 URL 列表中的 URL 在请求时才会通过开放平台的安全校验。

  1. 调用获取授权登录授权码接口,获取登录预授权码 code

调用接口时需要使用应用凭证 App ID,你可以在应用详情页的 基础信息 > 凭证与基础信息 页面,获取应用凭证 App ID

  1. 调用获取 user_access_token接口,获取user_access_token

同时可以获取到 Token 的有效期(expires_in 响应字段)。

  1. (可选)调用刷新 user_access_token接口,刷新 user_access_token

user_access_token 的有效期为两小时左右,过期后,需要刷新后再使用。

如何使用访问凭证(access_token)

使用访问凭证(access_token),需要在调用接口时将其填入到 HTTP 请求的 请求头参数 中,且该值需要增加 Bearer<空格> 前缀。
为了安全考虑, 请勿在应用前端使用访问凭证。请在应用服务端发起 API 访问请求。

每个 OpenAPI 文档中,均声明了该接口需要的访问凭证类型和获取方式。

例如,cURL 请求配置示例如下:
调用 API 的详细操作参见调用 API

1
2
3
curl --location --request GET 'https://open.feishu.cn/open-apis/contact/v3/departments/od-64242a18099d3a31acd24d8fce8dxxxx' \
--header 'Authorization: Bearer t-5888bcb7c421a695ca83c449caba5cxxxx' \
--header 'Content-Type: application/json; charset=utf-8'