青龙面板资产推送进阶:如何自定义WxPusher通知内容与多账号管理?
2026/6/11 9:44:53 网站建设 项目流程

青龙面板资产推送进阶:如何自定义WxPusher通知内容与多账号管理?

在数字化资产管理领域,青龙面板配合WxPusher的推送能力已经成为许多技术爱好者的标配方案。但当你已经跨过基础配置门槛,是否开始思考:如何让推送内容更精准反映资产变动细节?怎样高效管理多个账号的绑定关系?本文将带你深入WxPusher的API能力边界,解锁脚本定制与多账号管理的进阶技巧。

1. WxPusher消息模板深度定制

1.1 解析原始消息结构

以KR库的jd_bean_change_pro.js为例,默认推送内容通常只包含基础资产变动数字。通过分析脚本中的消息组装逻辑,我们可以定位到关键代码段:

let message = `【京东资产变动】\n` + `当前京豆:${beanCount}\n` + `今日变动:${changeAmount}`;

这种结构虽然清晰,但缺乏明细数据支撑。我们可以通过以下维度增强信息价值:

  • 分时段变动统计
  • 历史趋势对比
  • 任务触发来源标识

1.2 动态模板改造实战

改造后的消息生成逻辑可参考以下代码片段:

function generateDetailMessage(userData) { const now = new Date(); return `【${userData.nickname}资产明细】\n` + `🕒 ${now.toLocaleString()}\n` + `📊 当前资产:\n` + ` 京豆:${userData.beans}(${userData.beanTrend})\n` + ` 红包:${userData.redPackets}\n` + `📈 今日累计:\n` + ` 收入:+${userData.income}\n` + ` 支出:-${userData.expense}\n` + `🔔 最近操作:${userData.lastAction}`; }

关键改造点说明:

原始字段增强字段数据来源
beanCountbeans + beanTrend京东API历史数据
changeAmountincome/expense本地日志分析
-lastAction任务触发记录

提示:修改脚本后需在青龙面板"脚本管理"中清除缓存,确保加载最新版本

2. 多账号管理体系构建

2.1 Uid映射文件结构优化

标准的CK_WxPusherUid.json采用简单数组结构,当管理10+账号时会面临维护困难。建议升级为分组结构:

{ "accountGroups": { "personal": [ { "pt_pin": "jd_123456", "Uid": "UID_aaa", "alias": "主账号" } ], "family": [ { "pt_pin": "jd_789012", "Uid": "UID_bbb", "alias": "家人账号" } ] }, "defaultTemplate": "detailed" }

这种结构支持:

  • 按使用场景分组管理
  • 为每个账号添加备注别名
  • 设置组级别消息模板

2.2 动态绑定解决方案

对于需要频繁更换绑定关系的场景,可以创建绑定管理脚本wxpusher_bind_manager.py

import json import requests def update_binding(config_path, pt_pin, uid): with open(config_path) as f: config = json.load(f) # 检查现有绑定 for group in config['accountGroups'].values(): for account in group: if account['pt_pin'] == pt_pin: account['Uid'] = uid break with open(config_path, 'w') as f: json.dump(config, f, indent=2) return True

常用管理命令:

# 查看当前绑定状态 python wxpusher_bind_manager.py --list # 更新单个绑定 python wxpusher_bind_manager.py --update jd_123456 UID_new

3. 推送增强功能实现

3.1 消息优先级控制

WxPusher支持通过API参数控制消息优先级,在紧急资产变动时特别有用:

const pushOptions = { contentType: 1, // 1-文字 2-HTML uids: [targetUid], token: appToken, url: 'https://bean.m.jd.com', // 可选跳转链接 verifyPay: false, // 是否需要付费验证 summary: '京东资产紧急变动', // 消息摘要 priority: 2 // 0-低 1-普通 2-高 };

优先级效果对比:

级别提醒方式送达速度
0普通消息<5分钟
1强提醒<1分钟
2连续提醒即时送达

3.2 消息模板多样化

根据不同场景设计多种消息模板,在sendNotify.js中扩展模板选择逻辑:

const templates = { simple: data => `JD资产: ${data.beans}`, detailed: data => `${data.time}\n资产详情...`, alert: data => `❗️异常变动: ${data.change}` }; function selectTemplate(templateName) { return templates[templateName] || templates.detailed; }

4. 运维监控与错误处理

4.1 状态监控看板

建议创建推送状态监控页面,关键指标包括:

  • 最近24小时推送成功率
  • 各账号最后活跃时间
  • 消息送达平均延迟
  • 模板使用分布

示例监控指标采集脚本:

#!/bin/bash # 获取推送状态统计 log_file="/ql/logs/wxpusher.log" success_count=$(grep -c "推送成功" $log_file) fail_count=$(grep -c "推送失败" $log_file) echo "监控报告 $(date)" echo "成功率: $((success_count*100/(success_count+fail_count)))%" echo "活跃账号: $(jq '.accountGroups | flatten | length' CK_WxPusherUid.json)"

4.2 常见问题排查指南

问题1:收不到推送通知

  1. 检查CK_WxPusherUid.json文件权限是否为644
  2. 确认WxPusher应用配置中的"消息回调地址"正确
  3. 测试直接调用API是否返回成功:
curl -X POST https://wxpusher.zjiecode.com/api/send/message \ -H "Content-Type: application/json" \ -d '{"appToken":"你的TOKEN","content":"测试消息","uid":"用户UID"}'

问题2:多账号绑定混乱

  • 使用--check参数验证绑定关系:
python wxpusher_bind_manager.py --check
  • 临时启用调试日志:
process.env.DEBUG = 'wxpusher*';

在实际运维中,建议每天固定时间检查推送状态日志,对于连续失败超过3次的账号自动触发告警通知。同时保持KR库的定期更新,但更新前注意备份自定义的模板文件。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询