Node.js 接入示例
示例仅依赖 Node.js 18 及以上版本自带的 fetch 和 crypto,可以复制到业务项目后端使用。
在通知中心仓库内可执行 npm run test:example 验证客户端签名和请求格式。
import { YouYiDianNotificationClient } from './notification-client.mjs'
const client = new YouYiDianNotificationClient({
baseUrl: process.env.YYD_NOTIFICATION_CENTER_URL,
projectCode: process.env.YYD_NOTIFICATION_PROJECT_CODE,
projectSecret: process.env.YYD_NOTIFICATION_PROJECT_SECRET,
})
const recipientUserId = '16408293139985728'
const delivery = await client.send({
idempotencyKey: `asset_disposal:53:${recipientUserId}:v1`,
recipientUserId,
title: '资产报废待审批',
content: [
'**申请时间:** 2026年7月16日 14:30',
'',
'**资产:** 摄影灯 A-102',
'',
'**申请人:** 无邪',
].join('\n'),
actionTitle: '立即审批',
actionUrl: 'https://asset.jiansun.vip/workflows/disposals/53',
})
console.log('通知已受理:', delivery.id, delivery.status)
const latest = await client.getDelivery(delivery.id)
console.log('当前投递状态:', latest.status)
注意:
- 这段代码只能运行在后端。
- 不要把三个环境变量使用
NEXT_PUBLIC_、VITE_等前端公开前缀。 - 业务调用失败后重试时复用原幂等键,但每次 HTTP 请求会自动生成新的 nonce。
- 多人通知请逐人调用
send,并把收件人userId放入幂等键。