Wechat Mp Publisher

# WeChat MP Publisher

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Wechat Mp Publisher" with this command: npx skills add ryan32382/wechat-mp-publisher-zhizi

WeChat MP Publisher

OpenClaw Skill for publishing articles to WeChat Official Account (微信公众号文章自动发布工具)

Description

This skill enables AI agents to publish articles to WeChat Official Accounts using the WeChat MP API. It supports:

  • AccessToken management with automatic caching and refresh
  • Media upload (images, thumbnails, videos)
  • Article draft creation and management
  • Publishing articles to followers
  • Querying publish status and drafts

Tools

wechat-mp-publish

Publish a WeChat Official Account article (发布微信公众号文章)

Parameters:

  • title (string, required): Article title (文章标题)
  • content (string, required): Article content in HTML format (正文内容,支持 HTML)
  • cover_media_id (string, required): Cover image media_id obtained from upload (封面图片素材 ID)
  • author (string, optional): Author name (作者名)
  • digest (string, optional): Article summary/abstract (文章摘要)
  • content_source_url (string, optional): Original source URL (原文链接)
  • publish (boolean, optional): Whether to publish immediately (default: true). Set to false to save as draft. (是否立即发布,false 则保存为草稿)

Returns:

{
  "success": true,
  "message": "文章已创建并提交发布",
  "data": {
    "media_id": "draft media id",
    "publish_id": "publish task id"
  }
}

Example:

tool: wechat-mp-publish
params:
  title: "我的第一篇文章"
  content: "<p>这是一篇测试文章</p>"
  cover_media_id: "MEDIA_ID_FROM_UPLOAD"
  author: "张三"
  publish: true

wechat-mp-upload-media

Upload media file to WeChat server (上传素材到微信服务器)

Parameters:

  • file_path (string, required): Local file path to upload (本地文件路径)
  • type (string, optional): Media type - image, thumb, voice, video (default: image) (素材类型)

Returns:

{
  "success": true,
  "message": "素材上传成功",
  "data": {
    "media_id": "uploaded media id",
    "type": "image",
    "created_at": 1234567890
  }
}

Example:

tool: wechat-mp-upload-media
params:
  file_path: "/path/to/image.jpg"
  type: "image"

wechat-mp-upload-cover

Upload cover image (shortcut for thumb type upload) (上传封面图片)

Parameters:

  • file_path (string, required): Local file path to cover image (封面图片路径)

Returns:

{
  "success": true,
  "message": "封面上传成功",
  "data": {
    "media_id": "cover media id"
  }
}

Example:

tool: wechat-mp-upload-cover
params:
  file_path: "/path/to/cover.jpg"

wechat-mp-query-drafts

Query draft list (查询草稿列表)

Parameters:

  • offset (number, optional): Pagination offset (default: 0) (分页偏移量)
  • count (number, optional): Items per page, max 20 (default: 10) (每页数量)

Returns:

{
  "success": true,
  "message": "获取草稿列表成功,共 5 条",
  "data": {
    "total_count": 5,
    "item_count": 5,
    "items": [...]
  }
}

wechat-mp-query-publish-status

Query publish status by publish_id (查询发布状态)

Parameters:

  • publish_id (string, required): Publish task ID returned from publish (发布任务 ID)

Returns:

{
  "success": true,
  "message": "发布状态: 成功",
  "data": {
    "publish_id": "PUBLISH_ID",
    "publish_status": 0,
    "status_text": "成功",
    "article_id": "ARTICLE_ID",
    "article_detail": {...}
  }
}

Status codes:

  • 0: Success (成功)
  • 1: Publishing (发布中)
  • 2: Original content review failed (原创审核失败)
  • 3: Failed (失败)

wechat-mp-delete-draft

Delete a draft by media_id (删除草稿)

Parameters:

  • media_id (string, required): Draft media_id to delete (草稿素材 ID)

Returns:

{
  "success": true,
  "message": "草稿删除成功"
}

Configuration

Create a configuration file at ~/.openclaw/config/wechat-mp.json:

{
  "app_id": "your-wechat-app-id",
  "app_secret": "your-wechat-app-secret",
  "default_author": "默认作者名",
  "access_token_cache_file": "~/.openclaw/.wechat_mp_token.json"
}

Or use environment variables:

export WECHAT_MP_APP_ID="your-app-id"
export WECHAT_MP_APP_SECRET="your-app-secret"
export WECHAT_MP_DEFAULT_AUTHOR="默认作者"
export WECHAT_MP_TOKEN_CACHE="~/.openclaw/.wechat_mp_token.json"

Prerequisites

  1. WeChat Official Account (Service Account/认证服务号) with API access
  2. IP whitelist configured in WeChat MP Admin Portal
  3. Node.js >= 18

功能对比:认证号 vs 非认证号

功能认证服务号订阅号/未认证服务号
群发文章给粉丝✅ 支持❌ 不支持
自定义菜单管理✅ 支持✅ 支持
用户管理✅ 支持✅ 支持
素材管理(图片/视频/语音)✅ 支持✅ 支持
创建草稿✅ 支持✅ 支持
通过API发布文章✅ 支持❌ 不支持
模板消息✅ 支持❌ 不支持
网页授权✅ 支持✅ 支持
微信支付✅ 支持❌ 不支持

说明

  • 认证服务号(Service Account):已完成微信认证的账号,拥有全部API权限
  • 订阅号(Subscription Account):免费账号,权限有限
  • 未认证服务号:功能介于订阅号和服务号之间,部分API不可用

推荐方案

  1. 如果需要自动发布文章:请使用认证服务号
  2. 如果只有订阅号/未认证号:可以先将文章保存为草稿,然后手动在微信后台发布

Installation

cd /Users/zhizi/.openclaw/workspace/agents/dev-team/projects/active/wechat-mp-publisher
npm install
npm run build

Usage Example

Complete workflow

// 1. Upload cover image
const coverResult = await wechatMpUploadCover({
  file_path: "/path/to/cover.jpg"
});

// 2. Publish article
const publishResult = await wechatMpPublish({
  title: "我的文章标题",
  content: "<p>文章内容</p>",
  cover_media_id: coverResult.data.media_id,
  author: "作者名",
  publish: true
});

// 3. Check publish status
const status = await wechatMpQueryPublishStatus({
  publish_id: publishResult.data.publish_id
});

Project Structure

wechat-mp-publisher/
├── SKILL.md                    # This file
├── README.md                   # Project documentation
├── package.json                # Dependencies
├── tsconfig.json               # TypeScript config
├── src/
│   ├── index.ts               # Main entry & OpenClaw tools
│   ├── auth.ts                # AccessToken management
│   ├── media.ts               # Media upload
│   ├── article.ts             # Article management
│   └── types.ts               # TypeScript types
├── scripts/                    # CLI scripts (optional)
└── tests/                      # Test files

Error Handling

All tools return a standardized response:

{
  success: boolean;    // Operation success status
  message: string;     // Human-readable message
  data?: any;          // Response data on success
}

On failure, success will be false and message contains the error description.

API Reference

Based on WeChat Official Account API:

License

MIT

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Leads

Leads - command-line tool for everyday use

Registry SourceRecently Updated
General

Bmi Calculator

BMI计算器。BMI计算、理想体重、健康计划、体重追踪、儿童BMI、结果解读。BMI calculator with ideal weight, health plan. BMI、体重、健康。

Registry SourceRecently Updated
General

Blood

Blood — a fast health & wellness tool. Log anything, find it later, export when needed.

Registry SourceRecently Updated
General

Better Genshin Impact

📦BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 - UI A better genshin impact, c#, auto-play-game, automatic, g...

Registry SourceRecently Updated