larksuite / larksuite/node-sdk
[bug] urgent_app 加急推送锁屏内容兜底为「请升级至最新版本客户端」,与非加急同卡片表现不一致
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 294
- Forks
- 54
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 4
Description
问题
调 PATCH /open-apis/im/v1/messages/:message_id/urgent_app 给一条 msg_type: interactive 的卡片加急后,接收方手机锁屏推送通知的 body 强制显示:
[⚡加急⚡]<sender>: 请升级至最新版本客户端,以查看内容
而非卡片的 config.summary.content。
锁屏截图(bug 现场)

两条通知都来自同一个机器人,都是 Schema 2.0 卡片(msg_type: interactive),只是分别发往不同群。锁屏 body 一致兜底成「请升级至最新版本客户端,以查看内容」。
关键对比 —— 同一张卡片、同一台手机、加急 vs 不加急
| 场景 | 锁屏 body |
|---|---|
加急 (urgent_app) |
请升级至最新版本客户端,以查看内容 ❌ |
| 不加急(常规推送) | <config.summary.content 真值> ✅ |
→ 问题不在客户端版本,而是 server 侧 urgent_app 推送 body 的生成逻辑跟普通推送不同。
复现
// 1. 发 Schema 2.0 卡片
const card = {
schema: '2.0',
config: {
update_multi: true,
summary: { content: '这条 summary 锁屏应该显示' }
},
header: { title: { tag: 'plain_text', content: '即使带 header.title 也无效' }, template: 'blue' },
body: { elements: [{ tag: 'markdown', content: 'body' }] },
}
// POST /open-apis/im/v1/messages?receive_id_type=chat_id
// { receive_id, msg_type: 'interactive', content: JSON.stringify(card) }
// 2. 对返回的 message_id 加急
// PATCH /open-apis/im/v1/messages/{message_id}/urgent_app?user_id_type=open_id
// { user_id_list: [open_id] }
亲测下面三种变体锁屏 body 均兜底为「请升级至最新版本客户端」:
- 有 / 无
header.title - 有 / 无
streaming_mode: true - 不同 summary 内容
预期
锁屏 body 应等于 config.summary.content(与非加急一致)。
环境
-
接收端飞书 V7.68.10-715532895(Android,中国电信)—— 截图证明:

-
调用端
@larksuiteoapi/node-sdk(本 bug 不在 SDK 层,SDK 只透传)
文档差距
《流式更新 OpenAPI 概述》 只提到:
当使用 JSON 2.0 结构的卡片发送至低于 7.20 版本的客户端时,…内容将展示兜底的升级提示文案
7.68.10 一样触发、且只在 urgent_app 路径触发 —— 文档没披露这种场景。
期望处理
任一即可:
- urgent_app 服务端按非加急路径,用
config.summary.content生成锁屏 body - 文档补充说明 "urgent_app + 卡片 → 锁屏强制兜底",并给出官方推荐的卡片加急模式
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the PATCH /open-apis/im/v1/messages/:message_id/urgent_app entry point and compare its card notification behavior with the regular message path. Verify the SDK only forwards the request, then determine whether the actionable outcome is a server-side behavior change or documentation covering urgent_app with cards; done means the chosen path is implemented and verified against the reported reproduction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js, typescript
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100