Skip to content

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

Description

@leviyuan

问题

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 + 卡片 → 锁屏强制兜底",并给出官方推荐的卡片加急模式

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions