API说明文档

服务地址:https://wxmp.aicloud.xx.kg

总览

公开链接解析、已入库文章查询、公众号跟踪与话题搜索。浏览本页不会发起业务请求;参数完整定义见 Swagger。

健康检查

GET/api/health

服务探活,无需密钥。

公开链接解析

GET/api/v1/resolve

解析文章或合集,无需密钥。

管理链接解析

POST/api/v1/management/links/resolve

完整解析选项及保存,需要管理密钥。

单篇文章导出

POST/api/v1/management/exports/article

生成临时 ZIP 文件,需要管理密钥。

读取库内文章

GET/api/v1/management/articles

读取文章与已保存正文,需要管理密钥。

公众号与话题搜索

POST/api/v1/management/providers/weread/topic-searches

搜索、注册跟踪,需要管理密钥及微信读书登录。

健康检查

GET/api/health

返回上一级 · 返回目录

用途:服务健康检查。该接口不读取解析数据,适合作为监控探活。

鉴权不需要
参数无

请求示例

curl "https://wxmp.aicloud.xx.kg/api/health"

返回结构

{
  "status": "ok",
  "service": "wxmpapi",
  "time": "2026-07-10T10:00:00+08:00",
  "version": "0.1.0",
  "environment": "prod"
}

公开接口

公开接口不需要鉴权,面向便捷调用,返回正文文本与基础元数据。

公开链接解析

GET/api/v1/resolve

返回上一级 · 返回目录

用途:解析公开微信公众号文章或合集链接,返回固定、扁平、便于上层工具消费的 JSON。

参数位置必填说明
url查询参数是公众号文章或合集链接,例如 https://mp.weixin.qq.com/s/...

行为:不鉴权;文章返回正文文本和图片、音频、视频链接;合集只返回文章链接列表,不逐篇解析正文;不下载媒体文件;不持久保存解析结果;不返回原始 HTML。

文章链接无需手动补充 chksm,正文抓取会自动处理;不依赖微信读书登录态。

失败或部分解析时附 diagnostics:reason_code 区分作者隐私(CONTENT_PRIVATE)、平台限制(CONTENT_BLOCKED)、发布者删除(CONTENT_DELETED)、验证页和未知缺正文;message / suggestion 提供中文说明与建议。原因不明仍为 NO_JS_CONTENT,提示不改变重试策略。

请求示例

curl -G "https://wxmp.aicloud.xx.kg/api/v1/resolve"   --data-urlencode "url=https://mp.weixin.qq.com/s/xxxx"

返回结构:文章

{
  "status": "success",
  "type": "article",
  "mp_name": "...",
  "author": "...",
  "publish_time": "...",
  "title": "...",
  "text": "正文...",
  "image": [{"url": "https://mmbiz.qpic.cn/...", "index": 1}],
  "audio": [{"url": "https://res.wx.qq.com/voice/getvoice?mediaid=...", "name": "...", "duration_ms": 226000}],
  "video": [{"url": "https://mp.weixin.qq.com/mp/videoplayer?...", "vid": "wxv_...", "cover_url": "..."}]
}

返回结构:合集

{
  "status": "success",
  "type": "album",
  "mp_name": null,
  "title": "合集标题",
  "article_count": 92,
  "articles": [
    {"title": "...", "url": "https://mp.weixin.qq.com/s?...", "publish_time": "...", "digest": "...", "cover_url": "..."}
  ]
}

管理接口

管理接口需要 X-Wxmpapi-Management-Key,用于解析调试、正文与元数据入库,以及临时导出。

管理链接解析

POST/api/v1/management/links/resolve

解析提示见 article.diagnostics;保存提示见 storage_error.diagnostics,均含安全原因及中文 message / suggestion,无需开启 raw_meta。

保存失败返回409(身份冲突)、502(存储错误)或503(存储不可用),响应保留解析结果,并通过storage_error和actions.article_saved=false说明保存状态。

返回上一级 · 返回目录

用途:管理解析入口。用于获取原始 HTML、保存文章元数据、正文与媒体链接,或在本地环境下载图片和音频。

请求头必填说明
X-Wxmpapi-Management-Key是管理密钥,只应放在服务端或可信脚本中。
字段说明
url公众号文章或合集链接
return.formatmetadata 元数据 / text 正文文本 / html_raw 原始 HTML
assets.modenone 不处理 / metadata_only 仅媒体链接 / download 下载
storage.save是否保存单篇文章解析结果;配置 Supabase 时写入 Postgres,否则保存本地产物。合集逐篇入库尚未实现;解析合集时使用 storage.save=false,或明确选择 storage.backend=local 保存本地产物
album.max_articles合集最多解析篇数,默认 5

请求示例:获取原始 HTML

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/links/resolve"   -H "Content-Type: application/json"   -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"   -d '{
    "url": "https://mp.weixin.qq.com/s/xxxx",
    "return": {"format": "html_raw", "content": true},
    "storage": {"save": false},
    "assets": {"mode": "none"}
  }'

请求示例:保存解析结果

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/links/resolve"   -H "Content-Type: application/json"   -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"   -d '{
    "url": "https://mp.weixin.qq.com/s/xxxx",
    "return": {"format": "html_raw", "content": true},
    "storage": {"save": true}
  }'

返回结构

{
  "status": "success",
  "request_id": "req_xxx",
  "result_type": "article",
  "source": "direct_mobile_wechat",
  "article": {
    "title": "...",
    "content": {
      "format": "html_raw",
      "text": null,
      "html_raw": "<div id="js_content">...</div>",
      "html_length": 1234
    },
    "assets": {"mode": "none | metadata_only | download", "images": [], "audio": [], "video": []},
    "artifact": {
      "artifact_id": "art_xxx",
      "storage": "local",
      "local_dir": "...",
      "files": {"metadata": {"path": "metadata.json"}, "content_text": {"path": "content-text.txt"}, "raw_html": {"path": "raw-content.html"}}
    }
  },
  "account": {"subscribed": false},
  "actions": {"article_saved": true, "account_subscribed": false}
}

单篇 ZIP 导出

POST/api/v1/management/exports/article

返回上一级 · 返回目录

用途:解析单篇文章并生成短期 ZIP。创建导出需要管理密钥;返回的下载链接使用临时下载令牌,默认 5 分钟有效,下载时不需要管理密钥。

请求头必填说明
X-Wxmpapi-Management-Key是创建导出时需要。下载链接本身不需要该请求头。
字段说明
url单篇公众号文章链接
storage.save是否同时保存文章解析结果到 Supabase Postgres;默认 false
export.format当前仅支持 zip
export.media_mode当前仅支持 url_only,HTML 引用原始微信媒体链接,不下载媒体
export.save_export当前仅支持 false,不上传 Supabase Storage
export.ttl_seconds临时下载有效期,默认 300 秒

请求示例

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/exports/article"   -H "Content-Type: application/json"   -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"   -d '{
    "url": "https://mp.weixin.qq.com/s/xxxx",
    "storage": {"save": false},
    "export": {"format": "zip", "media_mode": "url_only", "save_export": false, "ttl_seconds": 300}
  }'

返回结构

{
  "status": "success",
  "request_id": "req_xxx",
  "export": {
    "export_id": "exp_xxx",
    "format": "zip",
    "media_mode": "url_only",
    "save_export": false,
    "expires_in": 300,
    "expires_at": "2026-07-10T17:31:26+08:00",
    "download_url": "https://wxmp.aicloud.xx.kg/api/v1/exports/exp_xxx/download?token=...",
    "file_size": 29207,
    "title": "...",
    "mp_name": "..."
  }
}

ZIP 暂存 /tmp/wxmpapi_exports;免费 Render 环境下不保证跨重启/重新部署可用。ZIP 结构为 article/article.html、article/content-text.txt、article/metadata.json、article/assets.json。

临时 ZIP 下载

GET/api/v1/exports/{export_id}/download

返回上一级 · 返回目录

用途:下载管理导出接口生成的临时 ZIP。该接口不需要管理密钥,但必须携带创建接口返回的 token。

参数位置必填说明
export_id路径参数是创建导出时返回的导出 ID
token查询参数是临时下载令牌

请求示例

curl -L "https://wxmp.aicloud.xx.kg/api/v1/exports/exp_xxx/download?token=..." -o article.zip

下载令牌错误或文件不存在返回 404;过期或临时文件已消失返回 410。

管理状态检查

GET/api/v1/management/status

返回上一级 · 返回目录

用途:验证管理密钥是否可用。

请求头必填说明
X-Wxmpapi-Management-Key是管理密钥

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/status"   -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回结构

{
  "status": "ok",
  "service": "wxmpapi",
  "environment": "prod"
}

密钥缺失或错误时返回 HTTP 401。

读取库内文章

本节只读已保存的数据,不请求微信读书、不刷新凭证或补抓正文。示例中的管理密钥从本地环境变量读取。

查询文章列表

GET/api/v1/management/articles

返回上一级 · 返回目录

用途:按公众号和发布时间查询文章,查看正文是否已保存。

鉴权请求头 X-Wxmpapi-Management-Key
参数可选筛选:book_id 与 account_id 不能同时传入;limit 默认20、最多100;cursor 用于翻页。

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/articles?book_id=MP_WXS_2398482821&limit=20" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回说明

items 返回文章信息,next_cursor 用于下一页,翻页时保留筛选条件。 book_id 为微信读书公众号标识,返回该号的采集记录,含尚未保存正文的文章; 不传时查询正式文章库,可用内容库的数字编号 account_id 筛选,两种标识不能混用。

published_from(含)和 published_before(不含)限定发布时间,均为 Unix 秒。 body_status=available 表示已有可读正文,not_saved 表示尚未保存。 暂停、取消订阅及账号离线不妨碍读取已有内容。

读取已保存正文

GET/api/v1/management/articles/{article_id}

返回上一级 · 返回目录

用途:按内容库文章编号读取正文和媒体信息。

鉴权请求头 X-Wxmpapi-Management-Key
参数路径中的 article_id 为数据库数字编号;include_html 默认 false;assets_after_id 为媒体分页游标。

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/articles/123?include_html=true" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回说明

默认返回已保存的正文文本;include_html=true 附带原始 HTML。 媒体每页最多100项,用 assets_next_after_id 作为下一次 assets_after_id。 尚无正文时返回 body_status=not_saved、content=null,不会自动解析原文。

按采集标识读取正文

GET/api/v1/management/articles/by-review

返回上一级 · 返回目录

用途:用公众号标识与文章标识查询正文及最近处理结果。

鉴权请求头 X-Wxmpapi-Management-Key
参数book_id、review_id 必填,文章标识保留原值(包括 ~);可用 include_html 和 assets_after_id。

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/articles/by-review?book_id=MP_WXS_2398482821&review_id=MP_WXS_2398482821_example~id" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回说明

正文及媒体返回规则同按文章编号查询;不存在的采集记录返回404。 本接口和按 book_id 查询的文章列表提供 content_attempt,记录最近正文处理结果、失败次数和时间; diagnostics 区分获取、解析或保存阶段及原因,message / suggestion 给出安全中文说明和建议,支持 STORAGE_* 保存错误;旧记录可能没有诊断。

单篇正文失败会继续处理后续文章,下一正常批次再试;已保存正文跳过。 需要主动保存时,可将 original_url 交给管理解析接口并指定保存,该操作会访问微信原文。

读取采集记录与原文链接

GET/api/v1/management/providers/weread/subscriptions/{book_id}/articles

返回上一级 · 返回目录

用途:查看跟踪公众号已入库的标题、时间、链接及处理状态。

鉴权请求头 X-Wxmpapi-Management-Key
参数book_id 为公众号标识;limit 默认100,范围1~500。

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/subscriptions/MP_WXS_2398482821/articles?limit=100" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回示例(示意数据)

{
  "items": [{
    "book_id": "MP_WXS_2398482821",
    "review_id": "MP_WXS_2398482821_example~id",
    "title": "文章标题",
    "published_at": 1790635542,
    "original_url": "https://mp.weixin.qq.com/s/...",
    "parse_state": "pending",
    "parse_result": null,
    "error_code": null,
    "first_seen_at": "2026-09-29T04:50:00+00:00",
    "updated_at": "2026-09-29T04:50:10+00:00"
  }]
}

按发布时间倒序返回。published_at 为 Unix 秒,入库时间为带时区的 ISO 时间。 parse_state=pending 表示正文尚未成功解析,error_code 单独记录错误。 该接口不返回全文;读取正文请使用本节前面的接口。

本接口只查库;GET /api/v1/management/providers/weread/books/{book_id}/articles 会请求微信读书获取上游文章列表。

读取运行概览

GET/api/v1/management/providers/weread/overview

返回上一级 · 返回目录

用途:汇总账号、周期维护、调度及各公众号最近采集结果。

鉴权请求头 X-Wxmpapi-Management-Key
参数无。

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/overview" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回说明

汇总刷新计划、保活成功/错误/未知结果、调度记录、采集时间表及各公众号最近结果。 时间为带时区的 ISO 格式;未初始化的数据为空,计划时间不保证准点执行,历史结果不代表当前业务可用。

正文未全部成功时批次可为 partial;每号的 collection_complete 表示所选页数处理结束,content_failed/content_failures 提供失败数量和最多10篇诊断样本。 last_collection_at 为列表进度时间,last_successful_round_at 为全部完成时间。 微信读书返回 NEED_VERIFY 时仍停止本轮后续公众号,账号周期刷新独立继续。

其他只读查询:GET /api/v1/management/providers/weread/subscriptions 查看跟踪列表, GET /api/v1/management/providers/weread/pull-round 查看最近批次, GET /api/v1/management/providers/weread/topic-searches/{uid} 查看已保存的话题结果。

管理跟踪公众号

订阅管理只写订阅记录,不请求微信读书;保留已有文章和采集进度。

改名、暂停或恢复

PATCH/api/v1/management/providers/weread/subscriptions/{book_id}

返回上一级 · 返回目录

用途:修改订阅名称,或控制该号是否参加自动采集。

鉴权请求头 X-Wxmpapi-Management-Key
参数请求体中的 name、enabled 至少一项;enabled=false 暂停,true 恢复。

请求示例

curl -X PATCH "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/subscriptions/MP_WXS_2398482821" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":false}'

返回说明

返回修改后的订阅,subscription_status 为 active / paused / cancelled。 恢复也适用于已取消记录,等待下一正常时段,不立即拉取;需要补齐停用期间历史时使用历史补拉。

暂停期间仍可显式手动拉取;同号正在执行任务时返回 409 WORK_BUSY,完成后重试。

取消跟踪

DELETE/api/v1/management/providers/weread/subscriptions/{book_id}

返回上一级 · 返回目录

用途:停止跟踪该公众号,保留历史文章与采集记录。

鉴权请求头 X-Wxmpapi-Management-Key
参数路径中的 book_id 必填,无请求体。

请求示例

curl -X DELETE "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/subscriptions/MP_WXS_2398482821" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回说明

返回已取消的订阅。列表默认隐藏取消记录,查询时加 include_cancelled=true 可查看。 重复注册不会修改或恢复已有订阅;恢复须显式使用 PATCH 的 enabled=true。 同号正在执行时返回 409 WORK_BUSY。

公众号与话题搜索

搜索和文章反查会请求微信读书,需要后台已登录;读取已有结果请使用库内查询。

搜索公众号

GET/api/v1/management/providers/weread/search

返回上一级 · 返回目录

用途:按关键词查找公众号,取得可用于跟踪的公众号标识。

鉴权请求头 X-Wxmpapi-Management-Key
参数keyword 必填;count 默认15、最多20;mode 默认为 app,可选 direct。

请求示例

curl -G "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/search" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  --data-urlencode "keyword=Wind万得" --data "count=5" --data "mode=app"

返回说明

默认使用模拟应用的搜索流程,返回 items;搜索本身不注册订阅。 需要多页结果时使用 POST /api/v1/management/providers/weread/search-pages。

搜索或文章反查后注册

POST/api/v1/management/providers/weread/subscriptions/register-from

返回上一级 · 返回目录

用途:从搜索结果或微信文章链接识别公众号并加入跟踪。

鉴权请求头 X-Wxmpapi-Management-Key
参数keyword 与 article_url 二选一;slot 从1开始;immediate 可控制首次立即采集。

请求示例

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/subscriptions/register-from" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"Wind万得","slot":1,"mode":"app","immediate":false}'

返回说明

返回注册后的订阅。文章反查请求体可写为 {"article_url":"https://mp.weixin.qq.com/s/..."}。 已知标识时使用 POST /api/v1/management/providers/weread/subscriptions,请求体为 {"book_id":"MP_WXS_123","name":"公众号名","immediate":false},可直接写入订阅。

重复 book_id 不更新原记录。首次立即采集默认关闭,省略 immediate 时使用已保存设置; 即时采集由调度执行,注册接口不会当场拉取。

搜索话题文章

POST/api/v1/management/providers/weread/topic-searches

返回上一级 · 返回目录

用途:搜索指定话题、获取原文链接,并可选解析和保存正文。

鉴权请求头 X-Wxmpapi-Management-Key
参数keyword 必填;默认1页、每页15条,limit 默认15;parse、save 默认关闭。

请求示例

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/topic-searches" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"人工智能","pages":1,"count":5,"resolve_urls":true,"limit":5}'

返回说明

返回搜索条目、已获取的原文链接和结果 uid。 resolve_urls=false 只搜索;indices 可按从1开始的位置选择条目,覆盖 limit 的选取规则。 未提供 indices 时,limit=0 不选取任何条目获取原文链接。

默认避让采集时段前后15分钟,每个凭证刷新窗口最多10次逻辑搜索; force=true 可显式越过这两项限制。默认不抓取正文。

parse=true 解析已获取的链接,要求 resolve_urls=true; save=true 将成功解析的正文存入内容库,要求 parse=true。 正文默认最多尝试3篇,max_articles 可设1~10;软时间预算 content_budget_seconds 默认90秒,在每篇开始前检查,单篇失败继续。

content 单独报告正文结果,正文随本次响应返回。 GET /api/v1/management/providers/weread/topic-searches/{uid} 只读已保存结果和正文处理摘要; 保存成功后按 article_id 从正文查询接口读取。正文阶段只访问微信原文,不再次搜索。

失败项的 diagnostics.reason_code 区分作者隐私、平台限制、发布者删除、网络/HTTP故障、验证码、缺少正文或部分解析;message / suggestion 提供中文说明与建议, stage 表示获取、解析或保存阶段。结果查询也能读取诊断,旧结果不会自动补抓或回填。

定时拉取与历史补拉

当前时间表与开关以运行设置为准;文档示例不代表线上已保存的时间表。

保存采集设置

PUT/api/v1/management/providers/weread/pull-settings

返回上一级 · 返回目录

用途:保存完整业务设置,不立即执行采集。

鉴权请求头 X-Wxmpapi-Management-Key
参数请求体包含 enabled、times、immediate_first_pull 和 max_pages。

请求示例

curl -X PUT "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/pull-settings" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"times":["06:00","12:00","18:00"],"immediate_first_pull":false,"max_pages":1}'

返回说明

返回保存后的设置。GET /api/v1/management/providers/weread/pull-settings 只读当前设置; 出厂默认时段为06:00 / 12:00 / 18:00,以返回的 timezone 为准。

  • 每天1~3次,相邻时段含跨午夜至少间隔4小时;首次立即采集默认关闭。
  • 每号默认1页,页内文章数不限制。达到页数上限表示本轮策略完成,不保证覆盖当天全部文章。
  • enabled 与运行总开关 runtime_enabled 均开启才会自动采集;本接口只改业务设置。
  • GET /api/v1/management/providers/weread/pull-round 返回批次 status、results、skipped、next_run_at 等,不触发任务。
  • 本轮某号出现 NEED_VERIFY 时跳过余号,周期凭证刷新继续;缺原文链接记录原因并继续其他文章。

手动采集单个公众号

POST/api/v1/management/providers/weread/subscriptions/{book_id}/pull

返回上一级 · 返回目录

用途:请求微信读书并保存文章信息和原文链接,可选保存正文。

鉴权请求头 X-Wxmpapi-Management-Key
参数pages 默认1;max_articles=0 表示不限文章数;parse=true 才额外解析和保存正文。

请求示例

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/subscriptions/MP_WXS_2398482821/pull" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pages":1,"max_articles":0,"parse":false}'

返回说明

返回本次采集结果、处理数量和停止原因。正文失败记录诊断,继续处理后续文章。 自动采集的正文开关由运行配置独立控制,不使用本次请求的 parse 设置。

创建历史补拉

POST/api/v1/management/providers/weread/catchups

返回上一级 · 返回目录

用途:按指定时间范围补拉历史,不改变正常批次采集进度。

鉴权请求头 X-Wxmpapi-Management-Key
参数since、upper 为 Unix 秒;book_ids 可选;pages 默认1,parse 默认 false。

请求示例

curl -X POST "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread/catchups" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"since":1790611200,"book_ids":["MP_WXS_2398482821"],"pages":1,"parse":false}'

返回说明

新补拉会先刷新凭证一次。省略 since 时使用上次整批成功时间,无成功批次时必须指定。 返回 uid 后,用 GET /api/v1/management/providers/weread/catchups/{uid} 只读查询进度, POST /api/v1/management/providers/weread/catchups/{uid}/continue 继续未完成任务。

账号、设备与保活

首页只展示使用说明,不读取或展示实际登录信息。完整管理操作见下方接口清单。

读取账号状态

GET/api/v1/management/providers/weread

返回上一级 · 返回目录

用途:查看保存的账号状态,不触发业务探测或凭证刷新。

鉴权请求头 X-Wxmpapi-Management-Key
参数无。

请求示例

curl "https://wxmp.aicloud.xx.kg/api/v1/management/providers/weread" \
  -H "X-Wxmpapi-Management-Key: $WXMPAPI_MANAGEMENT_API_KEY"

返回说明

active 表示凭证已接纳;degraded 表示保留会话但有已记录的异常,原因见 last_error_code。 正常刷新不会导致降级;已有 NEED_VERIFY 等错误保留到业务请求成功。

business_verified 表示当前凭证已有成功业务请求且无已记录错误; active 且该字段为 false 表示已登录、业务待验证。 last_authenticated_at 为最近凭证接纳时间,last_success_at 为最近业务成功时间,刷新和保活不更新后者。

GET /api/v1/management/providers/weread/installation 只读设备档案摘要。

登录与维护说明

首次登录:POST /api/v1/management/providers/weread/login-sessions 创建二维码 → 扫码 → POST /api/v1/management/providers/weread/login-sessions/{login_session_uid}/complete 完成登录。 已有可用会话时直接使用业务接口;明确无法续期或主动重新登录时才需要扫码。

周期凭证刷新默认在55~65分钟随机安排并持久保存到期时间,成功后执行保活。 POST /api/v1/management/providers/weread/refresh 主动续期, POST /api/v1/management/providers/weread/maintenance 按计划执行维护。 POST /api/v1/management/providers/weread/health-check 会请求微信读书,服务探活使用 GET /api/health。

POST /api/v1/management/providers/weread/logout 会退出当前账号; POST /api/v1/management/providers/weread/installation/new 会更换设备并作废旧会话。 两者都会影响当前登录,不是日常读取或凭证刷新的前置步骤。

Cron使用 POST /api/v1/internal/weread/dispatch 和独立请求头 X-Wxmpapi-Scheduler-Key, 管理密钥不能代替调度密钥。202 accepted表示已接收,随后执行维护和采集;200 busy表示本进程已有任务,不重复排队。 实际结果查看运行概览,不能把202当作刷新或采集成功。旧 /tick 保留同步执行方式,两者均不是只读检查。

常见返回与错误

401:缺少或错误的密钥;409:任务忙或状态冲突;422:参数错误;429:限速或搜索窗口限制。 502:上游拒绝等错误;504:上游超时。请结合响应中的 detail.code 判断原因。

数据库约束或权限错误返回 500 / PROVIDER_STORAGE_ERROR,暂时性存储故障返回 503 / PROVIDER_UNAVAILABLE。 detail.diagnostics 可含脱敏的存储 HTTP 状态和数据库错误码;503本身不表示微信读书登录失效。

完整接口清单

按当前应用的 OpenAPI 路由生成。点击用途查看完整参数;可选功能是否可用取决于服务配置。

公开解析与服务状态 · 2 项
方法路径用途与调用影响鉴权
GET/api/health服务健康检查
服务探活,不请求微信读书或解析文章。
无需密钥
GET/api/v1/resolve公开链接解析
解析微信公众号文章或合集,返回文本及基础信息;不保存内容,无需管理密钥。
无需密钥
库内文章与运行记录 · 10 项
方法路径用途与调用影响鉴权
GET/api/v1/management/providers/weread账号状态
只读数据库,不请求微信读书
管理密钥
GET/api/v1/management/providers/weread/overview账号、维护与采集运行概览
只读已有记录;不刷新凭证或拉取,不代表即时业务可用
管理密钥
GET/api/v1/management/providers/weread/installation当前设备档案摘要
只读数据库,不请求微信读书
管理密钥
GET/api/v1/management/providers/weread/subscriptions跟踪公众号及拉取结果
只读数据库;include_cancelled=true 可查看已取消记录
管理密钥
GET/api/v1/management/providers/weread/subscriptions/{book_id}/articles已入库文章与原文链接
只读数据库;limit 默认 100,最多 500
管理密钥
GET/api/v1/management/providers/weread/topic-searches/{uid}已保存的话题搜索结果
只读数据库,不重新搜索
管理密钥
GET/api/v1/management/providers/weread/catchups/{uid}已保存的补拉进度
只读数据库,不执行补拉
管理密钥
GET/api/v1/management/articles查询库内文章列表
只读内容库,支持公众号筛选及分页;不请求微信读书,不补抓正文。
管理密钥
GET/api/v1/management/articles/by-review按采集标识读取正文
使用 book_id 和 review_id 查询已采集文章;正文未保存时明确返回,不补抓。
管理密钥
GET/api/v1/management/articles/{article_id}读取库内文章正文
按内容库文章编号读取已保存正文和媒体信息,不触发解析。
管理密钥
公众号发现、注册与话题搜索 · 10 项
方法路径用途与调用影响鉴权
GET/api/v1/management/providers/weread/search搜索公众号
请求微信读书;默认模拟应用的搜索流程,count 默认 15、最多 20
管理密钥
POST/api/v1/management/providers/weread/identify-article从文章链接识别公众号
请求微信读书;不自动注册
管理密钥
GET/api/v1/management/providers/weread/books/{book_id}公众号阅读信息
请求微信读书
管理密钥
GET/api/v1/management/providers/weread/books/{book_id}/articles上游原始文章列表
请求微信读书;不是查询已入库文章
管理密钥
POST/api/v1/management/providers/weread/search-pages分页搜索公众号或话题
请求微信读书;scope=2 公众号,scope=4 话题
管理密钥
POST/api/v1/management/providers/weread/books/{book_id}/article-pages文章分页与可选原文链接
请求微信读书;默认 1 页,不写订阅采集表
管理密钥
GET/api/v1/management/providers/weread/reviews/{review_id}/url获取单篇原文链接
请求微信读书;review_id 保留原值,包括 ~
管理密钥
POST/api/v1/management/providers/weread/subscriptions按 book_id 注册跟踪公众号
写数据库;不当场拉取,重复 book_id 不更新
管理密钥
POST/api/v1/management/providers/weread/topic-searches搜索话题文章,可选解析和保存正文
请求微信读书;默认1页、15条,返回结果标识 uid
管理密钥
POST/api/v1/management/providers/weread/subscriptions/register-from搜索或文章反查后注册
请求微信读书 并写订阅;重复 book_id 不更新
管理密钥
拉取、时间表与历史补拉 · 8 项
方法路径用途与调用影响鉴权
PATCH/api/v1/management/providers/weread/subscriptions/{book_id}改名、暂停或恢复订阅
只写订阅,不请求微信读书;恢复等下一正常时段,正在执行返回409
管理密钥
DELETE/api/v1/management/providers/weread/subscriptions/{book_id}取消订阅,保留历史文章
只写软取消标记;可用 PATCH enabled=true 明确恢复
管理密钥
POST/api/v1/management/providers/weread/subscriptions/{book_id}/pull手动拉取一个已跟踪公众号
请求微信读书 并入库;parse=true 才额外抓取正文
管理密钥
GET/api/v1/management/providers/weread/pull-settings读取拉取时间表和开关
只读数据库与配置;runtime_enabled 为运行总开关
管理密钥
PUT/api/v1/management/providers/weread/pull-settings保存完整拉取设置
写数据库;不立即执行拉取
管理密钥
GET/api/v1/management/providers/weread/pull-round当前或最近批次结果
只读数据库;查看 results、pending、next_run_at
管理密钥
POST/api/v1/management/providers/weread/catchups创建并执行独立历史补拉
开始时刷新凭证一次;不改变正常批次进度
管理密钥
POST/api/v1/management/providers/weread/catchups/{uid}/continue继续未完成的历史补拉
请求微信读书 并入库,复用原检查点
管理密钥
扫码、账号与保活管理 · 8 项
方法路径用途与调用影响鉴权
POST/api/v1/management/providers/weread/login-sessions创建扫码会话
请求微信读书;已有可用账号时不用于日常读取
管理密钥
POST/api/v1/management/providers/weread/installation/new生成并替换设备指纹
会作废旧会话;必须提交 expected_profile_uid,之后需扫码
管理密钥
GET/api/v1/management/providers/weread/login-sessions/{login_session_uid}查询扫码会话
读取保存状态,可能更新过期标记
管理密钥
POST/api/v1/management/providers/weread/login-sessions/{login_session_uid}/complete完成扫码登录
请求微信读书 并保存登录凭据
管理密钥
POST/api/v1/management/providers/weread/logout退出当前账号
清除当前可用会话,之后需要重新登录
管理密钥
POST/api/v1/management/providers/weread/health-check业务可用性探测
会请求微信读书;服务探活请用 /api/health
管理密钥
POST/api/v1/management/providers/weread/refresh主动续期当前登录
请求微信读书 并更新凭据;不附加整套保活
管理密钥
POST/api/v1/management/providers/weread/maintenance按计划执行周期维护
到期时续期并保活;有持久检查点
管理密钥
管理解析与导出 · 4 项
方法路径用途与调用影响鉴权
POST/api/v1/management/links/resolve管理链接解析
使用完整解析选项,可显式保存文章和处理媒体资源;需要管理密钥。
管理密钥
POST/api/v1/management/exports/article创建单篇文章导出
解析文章并生成临时 ZIP 文件及下载地址;需要管理密钥。
管理密钥
GET/api/v1/exports/{export_id}/download下载临时文章压缩包
仅读取已生成的导出文件,使用创建导出时返回的下载令牌。
下载令牌
GET/api/v1/management/status检查管理鉴权
验证管理密钥,不执行解析或账号探测。
管理密钥
内部定时调度 · 2 项
方法路径用途与调用影响鉴权
POST/api/v1/internal/weread/tick执行一次调度检查
可能续期、保活和拉取;使用调度专用密钥,不是只读探活。
调度专用密钥
POST/api/v1/internal/weread/dispatch快速接收调度请求
202仅表示接收;后台按既有租约执行维护与采集,同进程忙时200 busy;使用独立调度密钥。
调度专用密钥
底层解析与可选诊断 · 5 项
方法路径用途与调用影响鉴权
POST/api/articles/parse-url底层文章解析
需要管理密钥,按请求可保存内容或下载资源;通常使用公开或管理链接解析入口。
管理密钥
POST/api/v1/management/probes/weread/login-sessions创建可选诊断会话
依赖外部辅助服务,默认关闭;不属于正式日常采集入口。
管理密钥
POST/api/v1/management/probes/weread/login-sessions/{probe_id}/run执行可选会话诊断
通过辅助服务执行所选诊断;默认关闭,不用于日常采集。
管理密钥
DELETE/api/v1/management/probes/weread/login-sessions/{probe_id}删除可选诊断会话
删除辅助服务诊断会话;不是退出正式账号的接口。
管理密钥
POST/api/albums/parse-url底层合集解析
需要管理密钥,按请求可解析合集条目;通常使用公开或管理链接解析入口。
管理密钥