微信公众号草稿箱API文档

本API提供微信公众号草稿箱管理功能,支持多公众号使用各自的appid和app_secret进行操作。

认证方式

多公众号API: 在请求体中包含 appidapp_secret

自动获取访问令牌: 程序会自动根据appid和app_secret获取微信访问令牌

基础URL

http://localhost:3000 (开发环境)
请根据实际部署情况调整域名和端口

多公众号认证API

支持不同公众号使用自己的appid和app_secret创建草稿,程序会自动获取访问令牌。

POST

多公众号:从URL导入内容

/api/draft/multi/import-url

请求参数

{
  "url": "https://example.com/article",
  "appid": "your-appid",
  "app_secret": "your-app-secret",
  "author": "作者名称",
  "digest": "文章摘要",
  "thumb_media_id": "封面图片素材ID"
}

响应示例

{
  "success": true,
  "data": {
    "media_id": "MEDIA_ID",
    "created_at": 1640995200000,
    "title": "文章标题",
    "content_preview": "内容预览..."
  },
  "message": "从URL导入成功"
}

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/import-url \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article",
    "appid": "your-appid",
    "app_secret": "your-app-secret"
  }'
POST

多公众号:从HTML导入内容

/api/draft/multi/import-html

请求参数

{
  "html": "

标题

内容

", "title": "文章标题", "appid": "your-appid", "app_secret": "your-app-secret", "author": "作者名称", "digest": "文章摘要" }

响应示例

{
  "success": true,
  "data": {
    "media_id": "MEDIA_ID",
    "created_at": 1640995200000,
    "title": "文章标题",
    "content_preview": "内容预览..."
  },
  "message": "从HTML导入成功"
}

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/import-html \
  -H "Content-Type: application/json" \
  -d '{
    "html": "

标题

内容

", "title": "文章标题", "appid": "your-appid", "app_secret": "your-app-secret" }'
POST

多公众号:从Markdown导入内容

/api/draft/multi/import-markdown

功能特性

  • 支持标准Markdown语法
  • 深色代码框样式,适合微信公众号
  • 生成的HTML不包含JavaScript,完全兼容微信公众号

请求参数

{
  "markdown": "# 标题\n\n这是**粗体**文本\n\n```javascript\nconsole.log('Hello');\n```",
  "title": "文章标题",
  "appid": "your-appid",
  "app_secret": "your-app-secret",
  "author": "作者名称",
  "digest": "文章摘要"
}

响应示例

{
  "success": true,
  "data": {
    "media_id": "MEDIA_ID",
    "created_at": 1640995200000,
    "title": "文章标题",
    "content_preview": "内容预览..."
  },
  "message": "从Markdown导入成功"
}

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/import-markdown \
  -H "Content-Type: application/json" \
  -d '{
    "markdown": "# 标题\n\n这是内容",
    "title": "文章标题",
    "appid": "your-appid",
    "app_secret": "your-app-secret"
  }'
POST

多公众号:Markdown预览

/api/draft/multi/preview-markdown

功能说明

将Markdown内容转换为HTML格式进行预览,但不创建草稿。

请求参数

{
  "markdown": "# 标题\n\n这是**粗体**文本\n\n```javascript\nconsole.log('Hello');\n```",
  "appid": "your-appid",
  "app_secret": "your-app-secret"
}

响应示例

{
  "success": true,
  "data": {
    "html": "<div style=\"font-family: -apple-system...\"><h1>标题</h1>..."
  },
  "message": "Markdown预览生成成功"
}
POST

多公众号:创建草稿

/api/draft/multi/create-draft

请求参数

{
  "title": "文章标题",
  "content": "

标题

内容

", "appid": "your-appid", "app_secret": "your-app-secret", "author": "作者名称", "digest": "文章摘要" }

响应示例

{
  "success": true,
  "data": {
    "media_id": "MEDIA_ID",
    "created_at": 1640995200000
  },
  "message": "创建草稿成功"
}

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/create-draft \
  -H "Content-Type: application/json" \
  -d '{
    "title": "文章标题",
    "content": "

标题

内容

", "appid": "your-appid", "app_secret": "your-app-secret" }'
POST

多公众号:获取草稿列表

/api/draft/multi/list

请求参数

{
  "appid": "your-appid",
  "app_secret": "your-app-secret",
  "offset": 0,
  "count": 20
}

响应示例

{
  "success": true,
  "data": {
    "item_count": 5,
    "item": [
      {
        "media_id": "MEDIA_ID",
        "content": {
          "news_item": [
            {
              "title": "文章标题",
              "author": "作者",
              "digest": "摘要",
              "content": "内容",
              "thumb_media_id": "THUMB_MEDIA_ID"
            }
          ]
        },
        "update_time": 1640995200
      }
    ]
  },
  "message": "获取草稿列表成功"
}

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/list \
  -H "Content-Type: application/json" \
  -d '{
    "appid": "your-appid",
    "app_secret": "your-app-secret",
    "offset": 0,
    "count": 20
  }'
POST

多公众号:删除草稿

/api/draft/multi/delete

请求参数

{
  "mediaId": "MEDIA_ID",
  "appid": "your-appid",
  "app_secret": "your-app-secret"
}

响应示例

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

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/delete \
  -H "Content-Type: application/json" \
  -d '{
    "mediaId": "MEDIA_ID",
    "appid": "your-appid",
    "app_secret": "your-app-secret"
  }'
POST

多公众号:获取素材列表

/api/draft/multi/materials

请求参数

{
  "appid": "your-appid",
  "app_secret": "your-app-secret",
  "type": "image",
  "count": 20
}

响应示例

{
  "success": true,
  "data": {
    "item": [
      {
        "media_id": "MEDIA_ID",
        "name": "图片名称",
        "url": "https://mmbiz.qpic.cn/..."
      }
    ]
  },
  "message": "获取素材列表成功"
}

cURL示例

curl -X POST http://localhost:3000/api/draft/multi/materials \
  -H "Content-Type: application/json" \
  -d '{
    "appid": "your-appid",
    "app_secret": "your-app-secret",
    "type": "image",
    "count": 20
  }'

错误码说明

错误码 说明 解决方案
400 缺少认证信息 请提供appid和app_secret
401 认证失败 检查appid和app_secret是否正确
500 服务器内部错误 检查服务器日志

配置说明

环境变量配置

# 服务器配置
PORT=3000
NODE_ENV=production

配置说明

  • PORT: 服务器端口号
  • NODE_ENV: 运行环境(development/production)