消息操作
格式化文字、回复、转发、置顶、表情反应、语音、@提及、撤回
在聊天里长按或右键一条消息,会弹出操作菜单。下面是每条消息能做的事。私信、群聊和 Thread 共用这些基础操作,但具体权限仍由会话类型、成员角色和消息状态决定。
逐条消息能做什么
| 操作 | 说明 |
|---|---|
| 回复 | 引用这条消息回复 |
| 查看回复 | 在这条顶层消息下展开/参与 Thread;Thread 回复不能再开子 Thread |
| 复制 | 复制消息文字 |
| 转发 | 把消息转发到别的聊天 |
| 置顶 / 取消置顶 | 把重要消息固定在群顶部(需要权限) |
| 编辑 | 只能编辑自己发的消息,发送后 15 分钟内可以修改,超过窗口后不能再改 |
| 举报消息 | 对别人的消息举报 |
| 撤回 | 见下方撤回规则 |
格式化文字与 Markdown
日常聊天不需要在发送时手动选择「纯文本 / Markdown」模式。普通输入框默认保持简洁,不直接展示格式工具栏;其中的内容始终按纯文本发送(包括看起来像 Markdown 的符号)。需要排版时,点输入区的放大按钮「打开高级编辑器」,在弹出的「高级编辑器」模态窗里输入 Markdown 并使用格式按钮;打开这个编辑器就是对当前消息使用富文本的明确选择。
Web 中的 Cmd/Ctrl+B、Cmd/Ctrl+I 等格式快捷键也属于明确的格式操作,会把当前草稿切换为富文本;不使用高级编辑器、格式按钮或快捷键时,普通输入始终按纯文本发送。
Web、iOS 和 Android 使用同一组受限语法:
| 效果 | 写法 |
|---|---|
| 粗体 | **重点** |
| 斜体 | *强调* |
| 删除线 | ~~已删除~~ |
| 行内代码 / 代码块 | 用反引号包围行内代码;用三个反引号包围多行代码 |
| 引用 | 行首输入 > |
| 有序 / 无序列表 | 行首输入 1. 或 - |
| 换行 | 在编辑器中插入换行 |
| 链接 | [说明](https://example.com);只支持 HTTP / HTTPS |
Web、iOS、Android 的入口
三端的消息协议和渲染语义一致,但入口按平台的输入习惯分别适配:
| 平台 | 普通状态 | 高级编辑器 |
|---|---|---|
| Web | 输入框只显示日常聊天所需控件 | 点击放大按钮「打开高级编辑器」,在「高级编辑器」模态窗内使用工具栏 |
| iOS | 输入框只显示日常聊天所需控件 | 点击「打开高级编辑器」进入全屏编辑器;关闭后保留草稿和光标位置 |
| Android | 输入框只显示日常聊天所需控件 | 点击「打开高级编辑器」进入全屏编辑器;关闭后保留草稿和光标位置 |
高级编辑器中的工具栏只负责插入 Markdown source,不会改变消息的兼容协议。iOS 与 Android 的系统通知仍显示服务端生成的纯文本预览,不显示 **、反引号等格式标记。
发送后,服务端会把 Markdown 规范化为安全的结构化消息,各端按同一语义渲染;编辑这类消息时会恢复原始 Markdown,方便继续修改。复制、搜索、会话预览和系统通知使用去掉格式标记的可读纯文本;不支持富文本的旧客户端也会收到真实的纯文本正文,而不是空消息或升级占位。Markdown 只负责消息正文的排版,不是通用卡片容器;附件、贴纸和链接卡片仍按各自的消息块单独处理。
上表之外的 Markdown 语法不会扩展成新的 UI 组件,会按输入中的字面文本保留。
在高级编辑器中,若想让 **、反引号等符号按字面显示,可以使用 Markdown 转义;普通输入框则始终按字面显示。机器人程序可改用纯文本 text 字段。
聊天消息不渲染网页 HTML
任意 HTML、CSS、JavaScript、iframe 或 WebView 内容都不会执行。HTML 标签只会作为可见文字处理;危险链接协议也不会变成可点击链接。
Bot 需要显式声明 Markdown
Bot 发送 { "text": "**重点**" } 时,内容始终按纯文本处理,会原样显示星号。要渲染格式,REST 请求必须发送 { "blocks": [{ "type": "rich_text_v1", "source": "**重点**" }] };Bot SDK 可以用 parseMode: "markdown" 转换成这一协议。Markdown 里的 @用户名 不会自动触发提及通知,需要另传结构化 mention / mention_all block。完整契约见 Bot 接口参考。
表情反应
点开菜单顶部的快捷表情栏,可以给任意一条消息加表情反应。Web 当前固定提供 6 个常用表情:👍 ❤️ 😂 😮 😢 🙏;Mobile 还可以从扩展选择器中选择更多表情。
撤回消息
| 谁 | 能撤回什么 |
|---|---|
| 你自己 | 自己发出 2 分钟内的消息 |
| 群主 | 群里成员(包括管理员)的消息 |
| 管理员 | 群里普通成员的消息;不能撤回群主或其他管理员的消息 |
超过 2 分钟后自己就不能撤回了,会提示「发送超过 2 分钟,不能撤回」。消息被撤回后显示「此消息已撤回」。
私信没有群主 / 管理员代撤回权限;管理员规则只适用于群聊。
语音消息与转文字
- 在输入区录制语音消息,发送时带波形。
- 收到语音后,在消息菜单点「转成文字」,把语音转成文字看。
- 转写完还能再点「再次转成文字」重新转一遍。
- 语音转文字要求当前账号达到 Level 1,且余额足够。转写成功后按条结算,当前为 ¥0.01 / 次;失败不结算,同一用户对同一条语音的重复结算会去重。
@提及
在群里输入 @ 会弹出成员选择器,可以 @某个人,对方会收到提及提醒。
- @所有人:只有群主和管理员能用。普通成员尝试 @所有人会被提示「只有群主或管理员可以 @所有人」。
- 「@我的」收件箱:所有 @ 到你的消息会汇总到一个提及收件箱,方便集中查看,不怕在大群里被刷过去。
Thread 里的 @ 提及会按会话通知级别、静音和成员权限处理;不要把“输入了 @”理解成必然收到 Push。Thread 回复也不会把普通群聊时间线持续标红。当前 Activity API 会默认纳入尚无状态记录的 Thread;已有状态后,关注、root 作者、参与或被提及都可能让它继续出现。
Thread(线程)
Thread 用一条顶层消息承载一段独立上下文。打开顶层消息的「查看回复」即可进入线程;回复会留在 Thread 中,不会混入群聊主时间线。你可以在 Thread 内继续回复、编辑自己的消息、撤回自己的消息,以及添加或取消表情反应。当前 Web/Mobile 界面不提供在 Thread 内再引用某条回复的操作;API 调用方可按接口契约传递引用关系。
每个 Thread 有独立的已读位置和关注状态。会话内搜索结果会标明所属 Thread,并可直接跳回对应回复;服务端已有 Thread Activity API,但当前 Web/Mobile 尚未提供独立的「线程动态」导航入口,入口和完整收件箱仍待补齐。消息通知是否送达还受会话通知级别、静音、系统推送权限和前台状态影响。
需要程序读取线程动态时,可用登录用户会话调用 GET /api/v1/chat/threads/activity,可选 conversationId 和 limit(1~100,默认 30);该收件箱接口目前只接受真人登录态,不接受 Bot runtime key。程序或 Bot 若只需维护某个 Thread 的状态,可调用以下端点:
| 操作 | 请求 | 权限与结果 |
|---|---|---|
| 标记 Thread 已读 | POST /api/v1/chat/conversations/<conversationId>/threads/<threadRootId>/read,正文 {"upToMessageId": <回复 id>} | 登录用户或 Bot;Bot 需 chat.read,root 必须可见;返回 updated 与 lastReadMessageId |
| 关注 / 取消关注 | POST /api/v1/chat/conversations/<conversationId>/threads/<threadRootId>/follow,正文 {"followed": true/false} | 登录用户或 Bot;Bot 需 chat.read,root 必须可见;返回最终 followed |
upToMessageId 只会推进到该 Thread 中实际可见的回复。对 Bot 来说,不存在或因安装 privacy mode 不可见的 root 会保持成功形态(已读不更新、关注回显请求值),不会暴露 root 是否存在;真人对失效或不可见 root 返回 404。首次创建已读状态会同时保存 followed: true。当前关注字段还不是 tri-state,显式 false 不会覆盖 root 作者、被提及者或参与者的 Activity 自动资格。这两个状态端点不会把 Thread 回复自动并入普通群聊未读,也不提供事件推送或离线 mutation catch-up。
查看已读成员(群聊)
在群里,长按自己发送的顶层普通消息可以「查看已读成员」,看哪些成员读过这条。这个列表只对消息发送者本人开放,Thread 回复、系统消息和他人发送的消息没有群成员 read-by 列表;能否显示具体成员还受双方的已读回执设置影响,详见隐私与设置。
链接卡片
聊天里粘贴链接会自动渲染成富卡片。不想看预览可以在聊天设置里关掉「显示链接卡片」——关掉后链接仍然保存,只是不展开成卡片。