npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-wechat-publish

v1.2.4

Published

N8N nodes for WeChat Official Account publishing - Create drafts and publish articles to WeChat Official Account platform

Readme

n8n-nodes-wechat-publish

npm version License: MIT

N8N nodes for WeChat Official Account publishing. Create drafts and publish articles to WeChat Official Account platform with ease.

功能特性 Features

  • 创建草稿 - Create draft articles with rich content support
  • 获取草稿 - Retrieve existing draft articles
  • 删除草稿 - Delete unwanted draft articles
  • 发布文章 - Publish draft articles to WeChat Official Account
  • 发布状态检查 - Monitor publishing status and results
  • 素材上传 - Upload images and media files
  • 图文消息 - Support for news articles with images
  • 图片消息 - Support for image-based articles
  • 评论设置 - Configure comment permissions
  • 自动Token管理 - Automatic access token refresh
  • 错误重试 - Built-in error handling and retry mechanism

安装 Installation

通过 npm 安装

npm install n8n-nodes-wechat-publish

手动安装

  1. 克隆此仓库到你的 n8n 自定义节点目录
  2. 安装依赖:npm install
  3. 构建项目:npm run build
  4. 重启 n8n

配置 Configuration

1. 获取微信公众号凭证

  1. 登录 微信公众平台
  2. 进入"设置与开发" > "基本配置"
  3. 获取你的 AppIDAppSecret

2. 在 N8N 中配置凭证

  1. 在 N8N 中创建新的凭证
  2. 选择 "WeChat API" 凭证类型
  3. 填入以下信息:
    • App ID: 你的微信公众号 AppID
    • App Secret: 你的微信公众号 AppSecret
    • Base URL: https://api.weixin.qq.com (默认)
    • Request Timeout: 30000 (可选,默认30秒)

使用方法 Usage

基本工作流程

  1. 获取素材列表 (查看已有素材) 或 上传素材 (上传新素材)
  2. 创建草稿 (使用素材ID作为封面)
  3. 发布文章
  4. 检查状态

注意:创建草稿前必须确保有有效的永久素材ID用作封面图片

操作说明

创建草稿 (Create Draft)

🆕 支持两种模式:

单篇文章模式 (Single Article Mode)

适用于精细化编辑单篇文章:

{
  "operation": "createDraft",
  "batchProcessingMode": "single",
  "articleType": "news",
  "title": "我的文章标题",
  "content": "<p>这是文章内容,支持HTML格式</p>",
  "author": "作者姓名",
  "thumbMediaId": "媒体ID",
  "needOpenComment": true,
  "onlyFansCanComment": false
}
批量文章模式 (Multi-Article Mode) 🆕

每3篇文章自动分组创建草稿,适用于批量内容发布:

{
  "operation": "createDraft",
  "batchProcessingMode": "multi",
  "articlesJson": [
    {
      "article_type": "news",
      "title": "文章标题1",
      "content": "<p>文章内容1</p>",
      "thumb_media_id": "媒体ID1",
      "author": "作者",
      "digest": "摘要1",
      "need_open_comment": 0,
      "only_fans_can_comment": 0
    },
    {
      "article_type": "news",
      "title": "文章标题2",
      "content": "<p>文章内容2</p>",
      "thumb_media_id": "媒体ID2",
      "author": "作者",
      "digest": "摘要2",
      "need_open_comment": 1,
      "only_fans_can_comment": 0
    },
    {
      "article_type": "news",
      "title": "文章标题3",
      "content": "<p>文章内容3</p>",
      "thumb_media_id": "媒体ID3",
      "author": "作者",
      "digest": "摘要3",
      "need_open_comment": 0,
      "only_fans_can_comment": 0
    }
  ]
}

批量模式响应示例:

{
  "total_articles": 5,
  "total_batches": 2,
  "batch_size": 3,
  "batch_results": [
    {
      "batch_index": 1,
      "article_count": 3,
      "media_id": "draft_media_id_1",
      "status": "success"
    },
    {
      "batch_index": 2,
      "article_count": 2,
      "media_id": "draft_media_id_2",
      "status": "success"
    }
  ],
  "success_batches": 2,
  "failed_batches": 0,
  "usage_tip": "📝 成功处理 5 篇文章,分为 2 个批次(每批最多3篇)"
}

🆕 智能图片插入功能

{
  "operation": "createDraft",
  "articleType": "news",
  "title": "带图片的文章",
  "content": "<p>文章内容...</p>",
  "thumbMediaId": "封面图片ID",
  "enableImageInsertion": true,
  "imageInsertionMode": "auto",
  "insertionImageIds": "media_id_1,media_id_2,media_id_3",
  "maxImagesPerArticle": 3,
  "imageInsertionStrategy": "sequential"
}

图片插入模式说明

  • auto - 智能定位:基于内容结构自动找到最佳插入位置
  • paragraph - 段落间插入:在段落之间按规律间隔插入图片
  • manual - 手动模式:使用内容中已有的图片标签

图片选择策略

  • sequential - 顺序选择:按提供的顺序使用图片
  • random - 随机选择:随机从图片列表中选择
  • balanced - 均衡分布:在图片列表中均匀分布选择

发布草稿 (Publish Draft)

将草稿发布到微信公众号:

{
  "operation": "publishDraft",
  "mediaId": "草稿的媒体ID"
}

检查发布状态 (Get Publish Status)

检查文章发布状态:

{
  "operation": "getPublishStatus",
  "publishId": "发布ID"
}

上传素材 (Upload Media)

上传图片等素材文件:

{
  "operation": "uploadMedia",
  "mediaType": "image",
  "mediaFile": "data" // 二进制数据属性名
}

获取素材列表 (Get Material List)

获取已上传的永久素材列表:

{
  "operation": "getMaterialList",
  "materialType": "image",
  "offset": 0,
  "count": 20
}

批量上传Memes (Batch Upload Memes) 🆕

从Meme API获取不重复的图片并批量上传到微信公众平台:

{
  "operation": "batchUploadMemes",
  "memeCount": 5,
  "subreddit": "wholesomememes",
  "skipNsfw": true,
  "skipSpoiler": true,
  "minUps": 100
}

功能特点

  • 🎯 自动从Reddit获取热门Memes
  • 🚫 智能过滤NSFW和剧透内容
  • 🔄 自动去重,避免重复上传
  • 📊 支持最小点赞数筛选
  • 🎨 支持指定Subreddit或随机获取
  • 📈 返回详细的上传统计信息

参数说明

  • memeCount: 要获取的Meme数量 (1-50)
  • subreddit: 指定子版块 (可选,留空为随机)
  • skipNsfw: 跳过NSFW内容 (推荐开启)
  • skipSpoiler: 跳过剧透内容 (推荐开启)
  • minUps: 最小点赞数要求

返回数据结构

{
  "success_count": 3,
  "failed_count": 1,
  "duplicated_count": 1,
  "media_ids": ["media_id_1", "media_id_2", "media_id_3"],
  "failed_urls": ["https://failed-url.com"],
  "processed_memes": [...],
  "summary": {
    "total_requested": 5,
    "successfully_uploaded": 3,
    "usage_tip": "💡 Use the media_ids from this response as thumbMediaId when creating drafts"
  }
}

重要说明:创建草稿时必须使用永久素材ID作为thumbMediaId。你可以:

  1. 使用"获取素材列表"操作查看已有的素材ID
  2. 使用"上传素材"操作上传新的永久素材
  3. 使用"批量上传Memes"操作获取趣味图片素材ID
  4. 在微信公众平台后台上传素材并通过"获取素材列表"获取ID

参数说明 Parameters

文章类型 (Article Type)

  • news: 图文消息
  • newspic: 图片消息

必填参数

  • 标题 (Title): 文章标题,最大64个字符
  • 内容 (Content): 文章内容,支持HTML,最大2万字符
  • 封面图片 (Thumbnail Media ID): 封面图片的媒体ID

可选参数

  • 作者 (Author): 文章作者
  • 摘要 (Digest): 文章摘要,为空时自动截取前54个字符
  • 原文链接 (Content Source URL): "阅读原文"的链接地址
  • 开启评论 (Enable Comments): 是否允许评论
  • 仅粉丝评论 (Only Fans Can Comment): 是否仅允许粉丝评论

错误处理 Error Handling

插件包含完整的错误处理机制:

  • API错误: 自动解析微信API错误码并提供详细错误信息
  • 网络错误: 支持自动重试机制
  • Token过期: 自动刷新访问令牌
  • 参数验证: 验证必填参数和数据格式

常见错误码

| 错误码 | 错误信息 | 解决方案 | |--------|----------|----------| | 40001 | access_token过期 | 自动处理,无需干预 | | 40002 | 不合法的凭证类型 | 检查AppID和AppSecret | | 40013 | 不合法的AppID | 确认AppID正确 | | 53404 | 账号已被限制带货能力 | 删除商品信息后重试 |

示例工作流程 Example Workflows

1. 简单发布流程

手动触发 → 创建草稿 → 发布草稿 → 检查状态

2. 批量发布流程

读取数据 → 上传图片 → 创建草稿 → 发布草稿 → 记录结果

3. 定时发布流程

定时触发 → 从数据库读取 → 创建草稿 → 延时等待 → 发布草稿

4. 智能图片文章发布流程 🆕

手动触发 → 批量上传Memes → 提取media_ids → 创建带图片的草稿 → 发布文章

详细步骤

  1. 获取图片素材 - 使用"Batch Upload Memes"获取趣味图片
  2. 处理图片ID - 从返回结果中提取media_ids
  3. 创建图文草稿 - 启用图片插入功能,自动在文章中插入图片
  4. 发布到公众号 - 发布包含多张图片的丰富文章

API 参考 API Reference

基于微信公众平台官方API文档:

开发 Development

本地开发设置

# 克隆仓库
git clone https://github.com/yourusername/n8n-nodes-wechat-publish.git
cd n8n-nodes-wechat-publish

# 安装依赖
npm install

# 开发模式
npm run dev

# 构建
npm run build

# 运行测试
npm test

# 检查代码规范
npm run lint

项目结构

n8n-nodes-wechat-publish/
├── credentials/           # 凭证定义
├── nodes/                # 节点定义
│   └── WeChat/
├── types/                # TypeScript 类型定义
├── dist/                 # 构建输出
└── docs/                 # 文档

贡献 Contributing

欢迎贡献代码!请遵循以下步骤:

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

许可证 License

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

支持 Support

如果你遇到问题或有建议,请:

  1. 查看 常见问题
  2. 搜索 已有问题
  3. 创建新的 Issue

更新日志 Changelog

查看 CHANGELOG.md 了解版本更新历史。


注意: 使用本插件需要有效的微信公众号和相应的API权限。请确保遵守微信公众平台的使用条款和政策。