From a1dacdbda5d1ae0e3dc27a632ccb27d4dcdf43eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A5=AD=E5=9B=A2?= Date: Fri, 6 Mar 2026 17:53:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8D=A1=E7=89=87=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E5=9B=9E=E8=B0=83=E5=93=8D=E5=BA=94=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(=E9=94=99=E8=AF=AF=E7=A0=81=20200341)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据飞书官方文档,卡片交互回调需要在 3 秒内响应。 修改: - 立即返回 toast 响应(3 秒内) - 异步处理后续操作(发送消息、上传文件等) - 使用规范的响应格式 修复前: - 等待所有处理完成后返回空对象 - 导致响应超时,弹出错误提示 修复后: - 立即返回 toast 提示 - 后台异步处理业务逻辑 - 用户通过消息接收处理结果 --- src/index.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 80bad4a..819bfc7 100644 --- a/src/index.js +++ b/src/index.js @@ -77,8 +77,17 @@ async function handleFeishuEvent(req, res) { } if (eventType === 'card.action.trigger') { - await handleCardInteraction(decryptedEvent); - res.status(200).json({}); + // 立即响应(3 秒内),后续处理异步进行 + res.status(200).json({ + toast: { + type: 'success', + content: '收到请求' + } + }); + // 异步处理,不阻塞响应 + handleCardInteraction(decryptedEvent).catch(err => { + log('卡片交互处理错误:', err.message); + }); return; }