企信链接识别卡片产品需求文档初稿
版本:v0.1
创建日期:2026-06-23
需求来源:用户沟通 + 竞品截图实测 + 企信运行态 HTML
优先级:待确认
文档状态:草稿
需求变更记录
| 变更日期 | 变更人 | 变更内容 |
|---|---|---|
| 暂无 | 暂无 | 暂无 |
| 6.25 | 孙浩 | 宣讲纪要: 1。 |
依赖需求 Story 列表
| ID | 需求描述 | 涉及端与开发人员 | 是否有依赖项 | 备注 |
|---|---|---|---|---|
| 待确认 | 企信 Web 端链接识别卡片 | 待确认 | 待确认 | 后续需要先定位企信会话详情页 Git 源码和现有消息渲染组件 |
一、需求概述
1.1 需求背景
当前企信消息中发送 URL 链接时,仅展示纯文本链接,用户需要先点开链接才能判断链接内容。竞品 IM 普遍对单条纯链接消息生成链接预览卡片,展示站点 logo、域名、标题和摘要,能降低误点风险,也能让群聊中的业务资料、文档、产品页更容易识别。
本需求目标不是做一个通用“漂亮卡片”,而是在企信会话消息流中,为符合条件的 URL 自动生成低打扰、可识别、可回退的链接预览卡片。
1.3 竞品现状
| 竞品 | 截图 |
|---|---|
| 飞书 | ![]() |
| 飞书补测 | ![]() |
| 飞书边界补测 | ![]() |
| 规则优化参考 | ![]() |
| 飞书规则参考 | ![]() |
| 企业微信 | ![]() |
| 钉钉 | ![]() |
竞品规则归纳
| 场景 | 飞书 | 企业微信 | 钉钉 | 初步结论 |
|---|---|---|---|---|
| 纯公开网页链接,例如 Salesforce | 生成卡片,展示 logo、域名、标题、摘要 | 生成卡片,展示标题、摘要、右侧 logo | 生成卡片,展示域名、标题、摘要、打开按钮 | 纯网页链接是最稳定的卡片生成场景 |
| 开放平台 / 文档网页,例如飞书开放平台 | 生成卡片 | 生成卡片 | 生成卡片 | 普通 HTML 文档页应按网页卡片处理 |
| 登录态 / SPA hash 链接,例如纷享企信链接 | 生成弱卡片,标题多为“登录”或站点级信息 | 生成弱卡片,标题为“登录” | 生成弱卡片,标题为“登录”并保留 URL | 无法绕过登录态;只能展示可公开获取的站点信息 |
| 文字 + 单一链接混排 | 补测中可生成卡片,例如 测试 https://365.kdocs.cn/... | 待补测 | 待补测 | 关键不是是否有文字,而是消息内是否存在唯一可预览主链接 |
| 文字 + 多链接混排 | 同一链接重复可生成 1 张卡片;同域不同路径、跨域多链接未生成卡片 | 待补测 | 待补测 | 不能只按域名合并,需判断是否为同一链接或同一资源 |
| URL 后带标点 | https://baidu.com。 可生成卡片,但域名展示为 baidu.com. | 待补测 | 待补测 | 飞书存在末尾标点计入域名的问题,企信需主动剥离 |
| 不带协议裸链接 | www.fxiaoke.com/XV/UI/Home#chats 未生成卡片 | 待补测 | 待补测 | 本期裸链接不生成卡片更稳 |
| 多条纯链接 | 不生成卡片,仅保留多条可点击链接 | 不生成卡片,仅保留多条可点击链接 | 不生成卡片,仅保留多条可点击链接 | 多链接清单默认不展开,避免一条消息生成多张卡片 |
| PDF 文件链接 | 不生成网页卡片,仅保留链接 | 不生成卡片,仅保留链接 | 生成通用“分享链接”卡片 | 文件链接不宜按网页摘要处理,本期可保持纯链接 |
| WPS / KDocs 链接 | 生成卡片,展示 365.kdocs.cn、标题“金山文档”和邀请登录提示 | 截图中仅展示纯链接,未生成卡片 | 生成通用“分享链接”卡片,信息较弱 | WPS 链接受站点元信息、登录态和平台抓取策略影响明显 |
| TAPD 链接 | 生成卡片,标题为“TAPD” | 生成卡片,标题为“TAPD” | 生成通用“分享链接”卡片 | 企业工具类登录态链接通常只能展示站点级标题 |
1.4 产品价值
- 让群聊中的链接可被快速识别:用户无需点开即可判断链接是产品官网、文档、PDF、WPS 文档、TAPD 还是内部系统链接。
- 降低链接误点和信息误判:登录态、PDF、抓取失败场景不伪装成完整网页卡片,明确按弱卡片或纯链接展示。
- 保持企信消息流稳定:优先处理单一主链接消息;对多链接或无法判断主链接的消息默认不强制展开,避免把普通沟通消息撑高。
1.5 需求目标
- 当用户发送单一主链接消息时,系统自动识别链接并生成链接预览卡片,展示站点 logo、域名、标题、摘要或文件信息。单一主链接包括单条纯链接,也包括只有一个可预览 URL 的文字混排消息。
- 当链接无法获取有效网页信息时,系统按登录态、文件型、通用站点型或纯链接进行降级展示,不生成误导性内容。
- 当消息中存在多个不同可预览链接,或系统无法判断唯一主链接时,本期默认不自动展开卡片,仅保留原消息和可点击链接。
二、产品方案
2.1 最终设计稿

设计稿中已确认的展示规则:
| 项目 | 规则 |
|---|---|
| 卡片宽度 | 固定约 400px;在消息气泡内展示,不铺满整行 |
| 链接文本 | 原始链接在卡片上方完整展示;超长链接允许折行展示 |
| logo | 识别到网站 logo 时直接展示;未识别时使用通用链接 icon 占位 |
| 域名 | 展示来源域名,不展示协议、路径、参数和 hash;Web 域名字号 12px,移动端参考字号 14px |
| 标题 | 14px 加粗,仅展示一行,超出省略 |
| 摘要 | Web 端 12px,最多展示两行,超出省略;移动端参考字号 14px |
| 操作能力 | 卡片内不展示复制、关闭预览、打开按钮;点击卡片等同点击原链接 |
2.2 整体方案
企信发送消息后,系统识别消息内容中的 URL。若消息中存在唯一可预览主链接,则尝试生成链接预览卡片;若消息中存在多个不同可预览链接,或无法判断主链接,本期默认保留为文本消息,不自动生成卡片。
链接卡片展示应贴近 IM 消息流:卡片宽度不宜过大,优先展示站点身份、标题和摘要;信息不足时降级展示,不用空白字段撑 UI。
2.3 链接识别规则
| 场景 | 识别条件 | 展示规则 | 示例 |
|---|---|---|---|
| 单条纯链接,且带协议完整 URL | URL 以 http:// 或 https:// 开头 | 生成 1 张链接卡片;按原始完整 URL 识别、打开、转发和搜索;卡片展示时域名可简化 | https://www.fxiaoke.com/XV/UI/Home#chats |
| 文字 + 单一链接混排 | 消息中包含普通文字,但只有 1 个可预览 URL | 生成 1 张链接卡片;保留原始文字和链接展示,卡片展示在该消息内 | 测试 https://365.kdocs.cn/l/cgMzqUYg4pXz |
| 不带协议裸链接 | 文本形如 www.xxx.com、xxx.com/path,且能被现有 URL 解析器识别 | 默认不生成卡片,仅保留可点击链接 | www.fxiaoke.com/XV/UI/Home#chats |
| 多条纯链接 | 消息由多行 URL 或多个 URL 组成,除 URL 外无正文 | 默认不生成卡片,仅保留多条可点击链接 | Salesforce + https://www.fxiaoke.com + https://www.fxiaoke.com/XV/UI/Home#chats |
| 文字 + 多链接混排 | URL 前后存在普通正文,且消息中包含多个不同可预览 URL | 默认不生成卡片,仅链接高亮可点击 | 测试 https://365.kdocs.cn/... https://baidu.com |
| 同一链接重复 | 消息中包含多个 URL,但规范化后指向同一个完整链接或同一资源 | 可按 1 个主链接生成 1 张卡片;重复 URL 不重复生成卡片 | 测试 https://365.kdocs.cn/l/cgMzqUYg4pXz https://365.kdocs.cn/l/cgMzqUYg4pXz |
| 同域不同路径链接 | 消息中包含多个 URL,域名相同但路径、资源 ID 或 query 不同 | 不生成卡片,仅链接高亮可点击;不能仅按域名相同合并为同一资源 | 测试 https://365.kdocs.cn/a https://365.kdocs.cn/b |
| URL 后带标点 | URL 后紧跟中文/英文标点,例如句号、逗号、右括号 | 识别时剥离末尾标点;标点保留在消息文本中,不作为 URL、域名展示和点击地址的一部分 | https://baidu.com。 |
| 文件链接 | URL path 后缀可识别为 .pdf、.ppt、.pptx、.doc、.docx、.xls、.xlsx 等 | 本期默认不生成网页预览卡片,仅保留链接;后续如做文件型卡片,再展示文件名、类型和来源域名 | https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf |
| 登录态 / 内部系统链接 | 抓取结果为登录页、空标题、权限页、跳转页或仅站点级信息 | 展示弱卡片:来源域名 + 可获取标题;不得模拟业务页面标题 | 纷享企信、TAPD |
| WPS / KDocs 链接 | kdocs.cn、365.kdocs.cn 等域名 | 按公开可获取信息展示;如果只能获取“分享链接”或登录提示,不强行展示文档正文 | 金山文档邀请链接 |
2.4 卡片信息结构
| 信息项 | 是否必需 | 展示规则 |
|---|---|---|
| 站点 logo / 文件类型图标 | 必需 | 优先 favicon 或站点 logo;文件链接用文件类型图标;获取失败用通用链接图标,即小地球 |
| 来源域名 | 必需 | 展示主域名或完整子域名,隐藏协议、路径、参数和 hash;例如原始链接https://www.fxiaoke.com/XV/UI/Home#chats,卡片域名展示为 www.fxiaoke.com |
| 标题 | 必需 | 优先网页 title / og:title;获取失败时使用域名、文件名或“分享链接”兜底 |
| 摘要 | 可选 | 优先 og:description / description;无摘要时不展示空行 |
卡片中展示的域名是来源标识,不等同于完整链接。点击打开、消息转发、消息搜索、卡片重新渲染均以原始完整 URL 为准。
本期卡片采用飞书、企业微信方向:链接卡片是原链接消息的渲染结果,卡片本身不展示复制、关闭预览、打开按钮等额外操作。钉钉在卡片上提供复制能力,是因为其渲染卡片后原始链接文本被移除;企信本期不采用该交互。
2.6 卡片交互
| 操作 | 规则 |
|---|---|
| 点击卡片主体 | 打开原始 URL,行为与点击链接一致 |
| 转发 | 转发的是原链接消息;转发到其他会话后,目标会话按链接识别规则重新渲染卡片 |
| 搜索消息 | 搜索无需命中卡片内爬取的元素 |
| 聊天记录卡片 | 批量转发生成的聊天记录卡片内部,暂不递归识别和渲染链接卡片 |
2.7 主链接判断规则
从飞书补测结果看,链接卡片触发条件不应简单定义为“纯链接才生成、文字混排不生成”。更合理的规则是:先从消息中抽取 URL,再判断是否存在唯一可预览主链接。
建议规则如下:
- 消息中只有 1 个可预览 URL:无论是否带普通文字,都可以生成 1 张卡片。
- 消息中有多个 URL,但规范化后指向同一个完整链接或同一资源 ID:可以按 1 个主链接生成 1 张卡片,不重复生成。
- 消息中有多个不同 URL,且无法判断主次:不生成卡片,仅保留可点击链接。
- 同域不同路径、同域不同资源 ID、同域不同 query 的链接,不应仅因域名相同而合并为同一个主链接。
- URL 后紧跟中文/英文标点时,识别阶段应剥离末尾标点;标点保留在消息正文中,不进入 URL 抓取、域名展示和点击地址。
- 消息中包含文件链接、裸域名、无法识别链接:不参与“可预览 URL”计数,按对应降级规则处理。
- 批量转发形成的聊天记录卡片内部,不递归识别链接卡片。
这样处理的好处是:既能覆盖“测试 + 一个链接”这类真实分享场景,也避免多链接清单被多张卡片撑高,或错误预览用户并不想强调的链接。
2.8 安全与权限边界
- 链接预览服务不得携带当前用户登录态去抓取第三方页面,避免越权读取内部文档或业务页面。
- 登录态链接不能展示当前用户才有权限看到的业务标题、客户名称、文档正文等敏感信息。
- 内部系统链接、WPS/KDocs、TAPD 等企业工具链接,若只能公开获取站点级信息,应展示站点级弱卡片或纯链接。
- 卡片中展示的标题、摘要、logo 来源于目标站点公开元信息或文件名,不应由前端根据 URL 路径自行编造。
四、规范检查项
4.1 业务文案多语言 Key
无
4.2 需求埋点
无
4.3 沙盒 / 更改集能力
不涉及。
4.4 PaaS 国际化兼容检查
| ID | 多语接入事项 | 是否需要 | 注意事项 |
|---|---|---|---|
| 1 | 接入翻译工作台 | 否 | 链接标题和摘要来自第三方页面,不建议进入翻译工作台 |
| 2 | CRM提醒 | 否 | 不涉及 CRM 提醒 |
| 3 | 企信消息提醒 | 是 | 仅影响企信消息内容展示,不应改变消息提醒内容 |
| 4 | 支持快捷翻译能力 | 待确认 | 链接卡片标题/摘要是否参与翻译待确认;建议首期不翻译卡片元信息 |
| 5 | 数据多语能力 | 否 | 不涉及业务数据多语 |
4.5 操作日志说明
无。链接预览生成属于消息展示增强,不建议生成用户可见操作日志。
4.6 风险点
| ID | 风险类型 | 风险说明 | 响应策略 |
|---|---|---|---|
| 1 | 权限风险 | 如果抓取服务携带用户登录态,可能把内部页面标题、文档正文展示给无权限成员 | 抓取服务不得携带用户态;登录态链接只展示公开信息 |
| 2 | 性能风险 | 发送多链接消息时,实时抓取可能影响消息发送或展示速度 | 异步抓取、超时回退、缓存元信息 |
| 3 | 误导风险 | 目标站返回登录页或通用标题时,卡片可能让用户误以为识别到了业务页面 | 明确按弱卡片展示,不编造业务标题 |
| 4 | UI 风险 | 卡片过高会打断 IM 消息流,尤其是多链接连续发送场景 | 控制卡片高度,摘要最多两行,多链接数量限制待确认 |
4.7 上线策略
| 项目 | 建议 |
|---|---|
| 收费标准 | 不收费 |
| 上线节奏 | 建议灰度 |
| 灰度原因 | 涉及第三方链接抓取、展示降级、安全边界和消息流体验,需要先小范围验证 |
| 适用版本 | 待确认 |
| 适用终端 | 本期仅 Web 端;移动端暂不纳入本期 |






