Skip to content

流式更新文本

对卡片中的普通文本元素(tag 为 plain_text 的元素)或富文本组件(tag 为 markdown 的组件)传入全量文本内容,以实现“打字机”式的文字输出效果。

输出效果说明

若旧文本为传入的新文本的前缀子串,新增文本将在旧文本末尾继续以打字机效果输出;若新旧文本前缀不同,全量文本将直接上屏输出,无打字机效果。参考流式更新卡片,了解流式更新文本的效果和完整流程。

使用限制

  • 调用该接口时,不支持将卡片设置为独享卡片模式。即不支持将卡片 JSON 数据中的 update_multi 属性设置为 false
  • 对于搭建工具中的卡片,仅支持对富文本组件中的内容进行流式更新,不支持对普通文本元素进行文本流式更新。
  • 调用该接口的应用身份(tenant_access_token)需与创建目标卡片实体的应用身份一致。

前提条件

调用该接口时,需确保已开启卡片的流式更新模式:

  • 在卡片 JSON 中,将 streaming_mode 设为 true

  • 或在卡片搭建工具中,在设置中开启流式更新模式:

    image.png

请求

项目
HTTP URLhttps://open.feishu.cn/open-apis/cardkit/v1/cards/:card_id/elements/:element_id/content
HTTP MethodPUT
接口频率限制1000 次/分钟、50 次/秒
支持的应用类型custom,isv
权限要求 调用该 API 所需的权限。开启其中任意一项权限即可调用cardkit:card:write 创建与更新卡片

请求头

名称类型必填描述
Authorizationstringtenant_access_token 值格式:"Bearer access_token" 示例值:"Bearer t-7f1bcd13fc57d46bac21793a18e560" 了解更多:如何选择与获取 access token
Content-Typestring固定值:"application/json; charset=utf-8"

路径参数

名称类型描述
card_idstring卡片实体 ID。通过创建卡片实体获取
示例值:"7355439197428236291"
数据校验规则
- 长度范围:120 字符
element_idstring卡片实体中,普通文本元素或富文本组件的 ID。对应卡片 JSON 中的 element_id 属性或搭建工具中的组件 ID 属性,由开发者自定义。
注意
- 仅支持卡片 JSON 2.0 结构或卡片搭建工具搭建的新版卡片。 - 对于搭建工具中的卡片,此处仅支持传入富文本组件的组件 ID。即仅支持对富文本组件中的内容进行流式更新。
示例值:"markdown_1"
数据校验规则
- 长度范围:120 字符

请求体

名称类型必填描述
uuidstring幂等 ID,可通过传入唯一的 UUID 以保证相同批次的操作只进行一次。
示例值:"a0d69e20-1dd1-458b-k525-dfeca4015204"
数据校验规则
- 长度范围:164 字符
contentstring新的全量文本内容。使用时请注意转义为字符串。
注意: - 若 content 中含有代码块,你需将代码块前后的空格去掉,否则可能导致代码渲染失败。 - 若旧文本为传入的新文本的前缀子串,新增文本将在旧文本末尾继续以打字机效果输出;若新旧文本前缀不同,全量文本将直接上屏输出,无打字机效果。
示例值:"这是更新后的文本内容。将以打字机式的效果输出"
数据校验规则
- 长度范围:1100000 字符
sequenceint操作卡片的序号。用于保证多次更新的时序性。
注意: 请确保在通过卡片 OpenAPI 操作同一张卡片时,sequence 的值相较于上一次操作严格递增。
数据校验规则:int32 范围( 1~2147483647)内的正整数。
示例值:1

请求体示例

json
{
    "uuid": "a0d69e20-1dd1-458b-k525-dfeca4015204",
    "content": "这是更新后的文本内容。将以打字机式的效果输出",
    "sequence": 1
}

响应

响应体

名称类型描述
codeint错误码,非 0 表示失败
msgstring错误描述
data\--

响应体示例

json
{
    "code": 0,
    "msg": "success",
    "data": {}
}

错误码

HTTP状态码错误码描述排查建议
40010002Your request contains an invalid request parameter.参数错误,请根据接口返回的错误信息并参考文档检查输入参数。
400200740The card entity does not exist卡片实体不存在。请检查实体 ID 是否正确。
400200750The card entity has expired卡片实体已过期。卡片实体的有效期为 14 天。即创建卡片实体超出 14 天后,你将无法调用相关接口操作卡片。请重新创建卡片实体。
400200770UUID conflictUUID 冲突。请传入唯一的 UUID 以保证相同批次的操作只进行一次。
400200810The card is in an ongoing interaction and cannot be updated在用户点击卡片请求回调交互期间,卡片无法实现流式更新。请等待交互结束后再尝试更新卡片。
400200850Card streaming timeout卡片流式更新模式因超时自动关闭。你可调用更新卡片配置streaming_mode 字段值设置为 true
400200860Card content exceeds limit.卡片体积超限。请将卡片大小控制在 30KB 以内。
400300302update_multi property is false卡片全局属性 update_multi 设置为了 false。在流式更新模式下,卡片全局属性 update_multi 需设置为 true。
400200220Failed to generate card content生成卡片内容失败。请检查卡片 JSON 格式是否有误。
400300307The card DSL is empty卡片 JSON 数据为空。请检查数据。
400300309Card streaming closed流式更新模式为关闭状态。你可调用更新卡片配置streaming_mode 字段值设置为 true
400300310Only update text该接口仅支持普通文本元素和富文本组件。请使用普通文本元素或富文本组件进行更新。
400300311The current application does not have permission to update/use this card当前应用没有更新或使用该卡片的权限。仅支持创建卡片实体的应用调用相关 OpenAPI 发送、操作卡片。
400300313Failed to update element properties更新组件属性失败。请根据接口返回的错误信息检查输入参数。
400300317The sequence number for operating on the card did not increment consecutively操作卡片的序号(sequence)未按顺序递增。请确保在通过卡片 OpenAPI 操作同一张卡片时,sequence 的值相较于上一次操作严格递增。
400300120Server Internal Error服务内部错误。请确保 sequence 依次递增,然后稍后重试。仍然出现可联系技术支持

内容来源:飞书开放平台 · 自动爬取整理