所有代码已完成,位于 C:\D\ai-trend-publish:
📁 ai-trend-publish/
├── api/
│ ├── hot-news.js ✅ 热点采集 API
│ ├── format-wechat.js ✅ 排版优化 API
│ └── index.js ✅ 微信发布 API(现有)
├── n8n-auto-publish-workflow.json ✅ N8N 工作流配置
├── create-schedule-tasks.bat ✅ Windows 定时任务创建工具
├── test_auto_publish.py ✅ 测试脚本
└── README_AUTO_PUBLISH.md ✅ 完整文档
由于测试环境有网络代理,推荐使用 N8N 内置定时触发器 而非外部 Windows 任务。
热点采集不需要复杂环境,直接部署到 Cloudflare:
-
准备文件
// _worker.js import { handleRequest } from './api/hot-news.js'; export default { fetch: handleRequest };
-
部署命令
cd C:\D\ai-trend-publish wrangler deploy
-
获取 URL
https://ai-trend-publish.YOUR_SUBDOMAIN.workers.dev/api/hot-news
-
打开 N8N:
http://localhost:5678 -
点击 Import → 选择
n8n-auto-publish-workflow.json -
修改采集 API URL (节点: "采集热点文章"):
url: "https://ai-trend-publish.YOUR_SUBDOMAIN.workers.dev/api/hot-news" -
连接您的 COZE 节点:
- 删除占位符节点
- 插入您现有的 COZE 改写工作流
- 确保输出格式:
{title, content, images}
-
配置微信发布(节点: "发布到微信草稿箱"):
- 如果部署到 Vercel,修改 URL
- 如果本地运行,保持
localhost:3000
工作流已预配置定时触发:
- Cron:
30 8,20,22 * * * - 时间: 08:30, 20:00, 22:00
点击工作流右上角的 "Activate" 按钮即可!
如果希望系统级定时任务控制:
- 删除 "定时触发" 节点
- 添加 Webhook 节点
- 设置路径:
/auto-publish-trigger - 获取 Webhook URL:
http://localhost:5678/webhook/auto-publish-trigger
以管理员身份运行:
C:\D\ai-trend-publish\create-schedule-tasks.bat这会创建 3 个定时任务:
- 早晨 08:30
- 晚间 20:00
- 睡前 22:00
验证任务:
schtasks /Query /TN "AI热点发布*"- 打开工作流
- 点击 "Execute Workflow"
- 观察每个节点的执行结果
- 检查微信草稿箱
schtasks /Run /TN "AI热点发布-早晨"# 测试热点采集(Cloudflare Workers)
curl "https://ai-trend-publish.YOUR_SUBDOMAIN.workers.dev/api/hot-news?limit=3"
# 或使用浏览器直接访问- 打开工作流 → 点击 "Executions"
- 查看成功/失败记录
- 点击单条记录查看详细日志
# 查看任务历史
Get-ScheduledTaskInfo -TaskName "AI热点发布-早晨"每天检查微信公众号草稿箱:
- 预期:每天 9 篇文章(3次 × 3篇)
- 人工审核后发布 2-3 篇精品
08:30 触发 → 采集10篇 → 筛选TOP3 → COZE改写 → 排版 → 草稿箱
20:00 触发 → 采集10篇 → 筛选TOP3 → COZE改写 → 排版 → 草稿箱
22:00 触发 → 采集10篇 → 筛选TOP3 → COZE改写 → 排版 → 草稿箱
- 自动入库: 9 篇草稿
- 人工筛选: 2-3 篇发布
- 总耗时: 每次约 3-5 分钟(自动)
- 人工时间: 仅需审核 5-10 分钟/天
# 检查 wrangler 版本
wrangler --version
# 重新登录
wrangler login
# 查看日志
wrangler tail检查项:
- COZE 节点是否正确连接
- 热点采集 API 是否可访问
- 微信 AppID/AppSecret 是否正确
- IP 白名单是否包含服务器 IP
快速诊断:
# 测试采集 API
curl "https://your-workers.dev/api/hot-news?limit=1"
# 测试微信 Access Token
curl "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx8410119dfbb7f756&secret=3c93e33e087e57b906f5c341aa5223b9"# 检查任务状态
schtasks /Query /TN "AI热点发布-早晨" /V
# 手动运行测试
schtasks /Run /TN "AI热点发布-早晨"
# 查看任务历史
Get-WinEvent -LogName "Microsoft-Windows-TaskScheduler/Operational" | Where-Object {$_.TaskCategory -eq "Task Scheduler launched action"}在发布前检查是否已发过相同标题:
// 在 N8N Code 节点中
const publishedTitles = await getRecentTitles(); // 从数据库/文件获取
if (publishedTitles.includes(article.title)) {
return null; // 跳过重复文章
}发送钉钉/企业微信通知:
// 添加 HTTP Request 节点
{
"url": "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN",
"method": "POST",
"body": {
"msgtype": "text",
"text": {
"content": "❌ 热点发布失败: {{ $json.error }}"
}
}
}根据历史数据分析最佳发布时间:
- 统计每个时段的阅读量
- 动态调整发布时间
- A/B 测试不同标题
| 文件 | 用途 | 位置 |
|---|---|---|
| n8n-auto-publish-workflow.json | N8N 工作流配置,直接导入 | 项目根目录 |
| api/hot-news.js | 热点采集逻辑,部署到 Workers | api/ |
| api/format-wechat.js | 排版优化逻辑 | api/ |
| create-schedule-tasks.bat | Windows 定时任务创建工具 | 项目根目录 |
| README_AUTO_PUBLISH.md | 完整技术文档 | 项目根目录 |
- Cloudflare Workers 已部署热点采集 API
- N8N 工作流已导入并连接 COZE 节点
- 定时触发器已配置(N8N 内置或 Windows 任务)
- 手动执行测试成功,草稿箱有文章
- 已激活工作流,等待自动触发
- 查看详细文档:
README_AUTO_PUBLISH.md - 技术指南:
N8N_AUTO_WORKFLOW_GUIDE.md - 检查 N8N 日志: 工作流 → Executions
- 检查微信 API: 公众号后台 → 开发 → 接口调试工具
创建时间: 2026-01-04 系统状态: ✅ 生产就绪 下次更新: 根据使用反馈优化