尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

RSS 阅读器怎么读微信公众号?wewe-rss API 三个接口全解

RSS 阅读器怎么读微信公众号?wewe-rss API 三个接口全解 RSS 阅读器怎么读微信公众号wewe-rss API 三个接口全解【免费下载链接】wewe-rss更优雅的微信公众号订阅方式支持私有化部署、微信公众号RSS生成基于微信读书项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rsswewe-rss 是一个可私有化部署的微信公众号 RSS 生成工具基于微信读书内置的 wewe-rss API 只有 3 个 GET 接口覆盖源列表、聚合内容、格式转换的完整链路。在 Web 控制台添加公众号之后它们就以标准订阅源的形式存在可以被任意 RSS 客户端订阅也可以把内容输出给下游脚本消费。接口与后台服务同进程运行NestJS默认端口 4000。一次请求的调用链是这样的请求先命中 feeds.controller.ts 里的路由交给handleGenerateFeed从数据库查出文章用 feed 库渲染成对应格式再设置好 Content-Type 返回给客户端。先拿到已订阅的公众号列表curl http://localhost:4000/feeds返回一个 JSON 数组每个订阅源一条记录[ { id: mpId, name: 某技术公众号, intro: 公众号介绍, cover: https://example.com/cover.jpg, syncTime: 1710000000, updateTime: 1710000000 } ]其中id就是后面内容接口 URL 里要用的标识。这个路径不需要AUTH_CODE鉴权顺手可以当探测接口用。获取聚合内容的三种格式Atom、RSS、JSON聚合端点固定写作all格式由 URL 后缀决定curl http://localhost:4000/feeds/all.atom # 默认 curl http://localhost:4000/feeds/all.rss curl http://localhost:4000/feeds/all.json三者分别对应 Atom 1.0、RSS 2.0、JSON Feed 1.0返回的 Content-Type 也随格式切换。后缀写错时比如.xml会自动回退为 Atom。由于三种格式由同一份数据渲染而来从 RSS 转 Atom 只需要改后缀不需要重新取数适合公众号源接入 FreshRSS / NetNewsWire这类场景。只想要单个源的内容时把all换成列表里的id即可/feeds/{id}.rss。用分页与标题关键词过滤订阅内容内容接口支持四个查询参数limit每页条数聚合端点默认 30单源端点默认 10page页码从 1 开始服务端按skip (page - 1) * limit取数title_include/title_exclude标题关键词包含/排除多个关键词用|分隔curl http://localhost:4000/feeds/all.atom?page2limit10 curl http://localhost:4000/feeds/all.json?title_includeAI|前端 curl http://localhost:4000/feeds/all.rss?title_exclude招聘一个容易忽略的细节关键词过滤发生在分页取数并渲染之后是订阅源过滤的最后一步所以边分页边过滤时单页实际条数可能小于limit。过滤逻辑见 feeds.service.ts。强制刷新单个订阅源与开启全文模式默认情况下接口只携带标题、摘要图等元信息正文内容需要通过全文模式获取curl http://localhost:4000/feeds/all.atom?modefulltextURL 参数优先于全局配置也可以在部署时设置FEED_MODEfulltext让所有请求默认走全文。全文模式下服务会去 mp.weixin.qq.com 抓取文章页提取正文节点并压缩 HTML 后写入content字段。⚠️ 全文请求比摘要模式明显更慢且计入限速建议只在对内容消费频率高的源上启用。强制刷新某个源curl http://localhost:4000/feeds/{id}.rss?updatetrueupdatetrue会异步触发该源从微信读书同步文章不阻塞响应——本次请求返回的通常还是旧快照稍后再请求才能拿到新内容。更新逻辑同样位于 feeds.service.ts。自定义更新周期与 Docker 部署定时任务负责同步所有启用状态的源默认 Cron 表达式为35 5,17 * * *Asia/Shanghai 时区即每天 5:35 与 17:35 各一轮。想改频率只需设置CRON_EXPRESSION环境变量export CRON_EXPRESSION30 * * * *wewe-rss Docker 部署方面仓库自带 docker-compose.yml包含 MySQL 8.3 与应用镜像cooderl/wewe-rss:latest两个服务应用对外暴露 4000 端口git clone https://gitcode.com/GitHub_Trending/we/wewe-rss cd wewe-rss docker compose up -d⚠️ 上线前请修改 compose 文件中的AUTH_CODE与MYSQL_ROOT_PASSWORD若部署到公网还需把SERVER_ORIGIN_URL设为外部可访问的域名否则生成 feed 里的link字段会是内网地址。集成到前端与轮询场景以及几个注意事项前端集成可以很简单React 组件里一次fetch(/feeds/all.json)后遍历items渲染列表即可不需要额外封装。第三方推送场景适合轮询 json 接口对比 feed 的updated时间或首条条目的链接有变化就推送例如钉钉机器人——仓库里的 wewe-rss-dingtalk/ 模块可以直接参考。性能层面记住三个数字全文 HTML 有 LRU 缓存容量 5000 条重复读取同一篇文章不会重复抓取原站接口限流由MAX_REQUEST_PER_MINUTE控制默认每分钟 60 次AUTH_CODE只保护管理类接口/feeds系列路径不受影响。 接下来的使用路径可以这样走先用/feeds拿到源列表用/feeds/all.atom在阅读器里订阅需要更精细的控制时再叠加分页与标题关键词参数如果发现内容更新不及时优先检查CRON_EXPRESSION与SERVER_ORIGIN_URL是否配置正确。【免费下载链接】wewe-rss更优雅的微信公众号订阅方式支持私有化部署、微信公众号RSS生成基于微信读书项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表