Skip to content

微信 API ​

微信 API 提供公众号授权、文章同步等功能。

公众号授权 ​

获取授权 URL ​

接口地址 ​

GET /api/wechat/authorize-url

查询参数 ​

参数类型必填说明
redirect_uristring是授权后跳转的 URL

响应示例 ​

json
{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "authorize_url": "https://open.weixin.qq.com/connect/oauth2/authorize?appid=...",
    "state": "abc123"
  }
}

使用流程 ​

  1. 获取授权 URL
  2. 引导用户扫码授权
  3. 用户授权后跳转到 redirect_uri
  4. 获取授权码
  5. 调用回调接口

授权回调 ​

接口地址 ​

POST /api/wechat/callback

请求参数 ​

参数类型必填说明
codestring是授权码
statestring是状态值

响应示例 ​

json
{
  "code": 200,
  "msg": "授权成功",
  "data": {
    "authorizer_appid": "wx1234567890abcdef",
    "nick_name": "公众号名称",
    "head_img": "https://...",
    "authorized_at": "2026-02-09T10:30:00Z"
  }
}

获取公众号列表 ​

接口地址 ​

GET /api/wechat/accounts

响应示例 ​

json
{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "total": 2,
    "accounts": [
      {
        "authorizer_appid": "wx1234567890abcdef",
        "nick_name": "公众号 A",
        "head_img": "https://...",
        "authorized_at": "2026-02-09T10:30:00Z",
        "status": "active"
      },
      {
        "authorizer_appid": "wx0987654321fedcba",
        "nick_name": "公众号 B",
        "head_img": "https://...",
        "authorized_at": "2026-02-08T15:20:00Z",
        "status": "expired"
      }
    ]
  }
}

同步文章到微信 ​

接口地址 ​

POST /api/wechat/sync-article

请求参数 ​

参数类型必填说明
article_idstring是文章 ID
authorizer_appidstring是目标公众号 AppID
optionsobject否同步选项

options 参数 ​

参数类型默认值说明
upload_imagesbooleantrue是否自动上传图片
compress_imagesbooleantrue是否压缩图片
keep_formatbooleantrue是否保留格式
sync_coverbooleantrue是否同步封面图

请求示例 ​

json
{
  "article_id": "abc123",
  "authorizer_appid": "wx1234567890abcdef",
  "options": {
    "upload_images": true,
    "compress_images": true,
    "keep_format": true,
    "sync_cover": true
  }
}

响应示例 ​

json
{
  "code": 200,
  "msg": "同步成功",
  "data": {
    "sync_id": "sync_123",
    "article_id": "abc123",
    "authorizer_appid": "wx1234567890abcdef",
    "status": "success",
    "media_id": "wx_media_id_123",
    "synced_at": "2026-02-09T10:35:00Z"
  }
}

查询同步状态 ​

接口地址 ​

GET /api/wechat/sync-status/:sync_id

响应示例 ​

json
{
  "code": 200,
  "msg": "获取成功",
  "data": {
    "sync_id": "sync_123",
    "status": "completed",
    "progress": 100,
    "media_id": "wx_media_id_123",
    "error": null,
    "created_at": "2026-02-09T10:30:00Z",
    "completed_at": "2026-02-09T10:35:00Z"
  }
}

状态说明 ​

状态说明
pending等待执行
processing正在同步
uploading上传图片中
completed同步完成
failed同步失败

取消授权 ​

接口地址 ​

DELETE /api/wechat/accounts/:authorizer_appid

响应示例 ​

json
{
  "code": 200,
  "msg": "取消成功",
  "data": null
}

错误码 ​

错误码说明
3001授权码无效
3002授权已过期
3003公众号未授权
3004文章不存在
3005同步失败
3006图片上传失败
3007API 调用频率超限

最佳实践 ​

授权流程 ​

  1. 获取授权 URL: 调用授权接口
  2. 引导用户授权: 显示二维码或链接
  3. 处理回调: 接收授权码
  4. 保存授权: 保存授权信息

同步优化 ​

提高同步成功率:

  1. 检查授权: 确保公众号授权有效
  2. 压缩图片: 减少上传时间
  3. 分批上传: 大量图片分批上传
  4. 错误重试: 失败后自动重试

状态轮询 ​

使用轮询查询同步状态:

javascript
async function checkSyncStatus(syncId) {
  const maxAttempts = 60 // 最多轮询 60 次(5 分钟)
  const interval = 5000 // 每 5 秒查询一次

  for (let i = 0; i < maxAttempts; i++) {
    const result = await getSyncStatus(syncId)
    
    if (result.data.status === 'completed') {
      return result
    }
    
    if (result.data.status === 'failed') {
      throw new Error(result.data.error)
    }
    
    await sleep(interval)
  }
  
  throw new Error('同步超时')
}

基于 AI 技术驱动的内容创作平台