larksuite / larksuite/node-sdk

[bug] urgent_app 加急推送锁屏内容兜底为「请升级至最新版本客户端」,与非加急同卡片表现不一致

Open
#188 1 comment 0 reactions 0 assignees View on GitHub

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 现场)

lockscreen-fallback

两条通知都来自同一个机器人,都是 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,中国电信)—— 截图证明:

    about-version

  • 调用端 @larksuiteoapi/node-sdk(本 bug 不在 SDK 层,SDK 只透传)

文档差距

《流式更新 OpenAPI 概述》 只提到:

当使用 JSON 2.0 结构的卡片发送至低于 7.20 版本的客户端时,…内容将展示兜底的升级提示文案

7.68.10 一样触发、且只在 urgent_app 路径触发 —— 文档没披露这种场景。

期望处理

任一即可:

  1. urgent_app 服务端按非加急路径,用 config.summary.content 生成锁屏 body
  2. 文档补充说明 "urgent_app + 卡片 → 锁屏强制兜底",并给出官方推荐的卡片加急模式

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.