尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

FreshRSS Google Reader API深度剖析:读懂fever/greader源码,构建你自己的RSS客户端

发布时间:2026/9/21 3:20:56

资讯中心
01
ARTICLE

FreshRSS Google Reader API深度剖析:读懂fever/greader源码,构建你自己的RSS客户端

FreshRSS Google Reader API深度剖析:读懂fever/greader源码,构建你自己的RSS客户端
FreshRSS Google Reader API深度剖析读懂fever/greader源码构建你自己的RSS客户端【免费下载链接】FreshRSSA free, self-hostable news aggregator…项目地址: https://gitcode.com/gh_mirrors/fr/FreshRSSFreshRSS 是一款免费、可自托管的 RSS 新闻聚合器它内置了Google Reader 兼容 API与Fever API两套接口让你用 Reeder、Read You、Newsboat、Vienna RSS 等原生 RSS 客户端订阅自托管的新鲜源。本文带你读懂p/api/目录下的源码掌握认证、流式拉取、增量同步的完整机制。一、两大 API 定位greader 与 fever 怎么选FreshRSS 通过 p/api/ 目录暴露接口核心文件只有两个文件协议特点p/api/greader.phpGoogle Reader APILayer 2功能最全增删订阅、OPML 导入导出、标签、星标、已读同步p/api/fever.phpFever API实现简单since_id/max_id分页但功能受限官方建议移动客户端优先用 greader 接口fever 作为兜底。二、一键开启 API 与获取认证令牌在 FreshRSS 网页端 →个人信息→ 认证区勾选允许 API 访问在个人信息中填写API 密码与登录密码分离权限更小更安全页面下方会给出你的 API 地址形如https://your.domain/api/greader.php。开启后可访问/api/的 p/api/index.php 自检页看到PASS即配置正确。认证机制ClientLogin 与 Tokengreader 接口的认证分两层源码在 p/api/greader.php登录向accounts/ClientLogin提交用户名 API 密码服务端校验后返回形如SID用户名/sha1签名的凭证后续请求放在请求头Authorization: GoogleLogin auth...中写操作令牌修改状态前需先调用reader/api/0/token获取一次性 Tokenp/api/greader.php服务端用hash_equals做恒时比较防时序攻击。fever 接口的认证更粗暴api_key md5(用户名:API密码)随请求提交即可。三、核心接口速查表greader.php 末尾的parse()方法就是一个手写路由器按 URL 路径分发路径作用源码位置reader/api/0/stream/contents/reading-list拉取文章支持分页/过滤streamContents()reader/api/0/stream/items/ids只取文章 ID 列表增量同步首选p/api/greader.phpreader/api/0/unread-count各订阅/分类未读数与最新时间戳unreadCount()reader/api/0/subscription/list订阅列表JSONp/api/greader.phpreader/api/0/subscription/export/importOPML 导出 / 导入p/api/greader.phpreader/api/0/subscription/edit订阅/退订/改名acsubscribe等subscriptionEdit()reader/api/0/tag/list分类与标签列表p/api/greader.phpreader/api/0/edit-tag批量标记已读/星标/打标签p/api/greader.phpreader/api/0/mark-all-as-read一键已读按订阅/分类/全部p/api/greader.phpstream/contents 的关键参数n条数、ot/nt时间窗口、r排序d 倒序 / o 正序it包含过滤如user/-/state/com.google/unread只取未读c续传游标响应末尾会带回continuation最后一条文章 ID下次请求带上即可翻页——这就是客户端增量同步的基石。四、源码里值得偷师的三个工程细节流式输出防内存爆炸streamContents()不组装完整 JSON 数组而是边遍历边echo避免大列表撑爆 PHP 内存见 p/api/greader.php 注释 must be streamed to avoid memory issues。双格式文章 ID 兼容客户端既可能传十进制 ID也可能传tag:google.com,2005:reader/item/前缀的十六进制 ID源码用hex2dec()统一转换32 位 PHP 下还有 GMP 扩展兜底p/api/greader.php。frss: 前缀扩展字段FreshRSS 特有信息以frss:前缀混在标准 JSON 里如frss:priority不破坏 Google Reader 规范兼容性。fever 接口的 FeverDAO 则展示了另一条思路直接拼接 SQL 按since_id/max_id区间取 50 条简单高效。五、构建你自己的 RSS 客户端同步顺序tag/listsubscription/list拉结构 →stream/items/ids拉 ID 增量 →stream/items/contents取正文 →unread-count刷新角标写回状态先token再edit-tag批量已读/星标调试工具官方文档给出了 curl 示例与兼容客户端列表News、FeedMe、Readrops、Fluent Reader、Vienna RSS 等见 docs/en/developers/06_GoogleReader_API.md 与 docs/en/developers/06_Fever_API.md同步策略避坑官方专门总结了低效同步反模式开发前必读 06_Mobile_access.md。读懂这两个文件你就拿到了接入 FreshRSS 的完整地图——无论是接入现成客户端还是自己写一个轻量阅读器都只需对着上面的路由表和参数开干即可。【免费下载链接】FreshRSSA free, self-hostable news aggregator…项目地址: https://gitcode.com/gh_mirrors/fr/FreshRSS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。