跳到主要内容
Logo2SOMEone

消息操作

格式化文字、回复、转发、置顶、表情反应、语音、@提及、撤回

在聊天里长按或右键一条消息,会弹出操作菜单。下面是每条消息能做的事。私信、群聊和 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 列表;能否显示具体成员还受双方的已读回执设置影响,详见隐私与设置。

链接卡片

聊天里粘贴链接会自动渲染成富卡片。不想看预览可以在聊天设置里关掉「显示链接卡片」——关掉后链接仍然保存,只是不展开成卡片。