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),仅供参考

相关新闻

Hydra 源码深度解析:配置管理与实验调度机制

Hydra 源码深度解析:配置管理与实验调度机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:19:49 阅读更多 →
SAP MM工厂间调拨:301与303移动类型选型指南与实战避坑

SAP MM工厂间调拨:301与303移动类型选型指南与实战避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:19:49 阅读更多 →
Vivado 2023安装配置与License管理全攻略:从部署到比特流生成的避坑指南

Vivado 2023安装配置与License管理全攻略:从部署到比特流生成的避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 3:19:49 阅读更多 →

最新新闻

Naive UI 创建适配主题的自定义组件:n-config-provider、n-element 与 useThemeVars 全面指南

Naive UI 创建适配主题的自定义组件:n-config-provider、n-element 与 useThemeVars 全面指南

前端UI组件 【免费下载链接】naive-ui A Vue 3 Component Library. Fairly Complete. Theme Customizable. Uses TypeScript. Fast. 项目地址: https://gitcode.com/gh_mirrors/na/naive-ui 点击查看 免费下载 Naive UI 不仅内置了数十个开箱即用的主题化组件&…

2026/9/21 3:45:05 阅读更多 →
如何给SumatraPDF贡献代码?从构建、调试到提交PR的完整开发者指南

如何给SumatraPDF贡献代码?从构建、调试到提交PR的完整开发者指南

如何给SumatraPDF贡献代码?从构建、调试到提交PR的完整开发者指南 【免费下载链接】sumatrapdf SumatraPDF reader 项目地址: https://gitcode.com/gh_mirrors/su/sumatrapdf SumatraPDF 是一款免费的开源多格式文档阅读器(支持 PDF、EPUB、MOBI、…

2026/9/21 3:44:04 阅读更多 →
Readest OPDS 分组轮播实现解析:基于 react-virtuoso 的虚拟化横向卡片滑轨与懒加载封面

Readest OPDS 分组轮播实现解析:基于 react-virtuoso 的虚拟化横向卡片滑轨与懒加载封面

桌面应用跨平台前端 【免费下载链接】readest Readest is a modern, feature-rich ebook reader designed for avid readers offering seamless cross-platform access, powerful tools, and an intuitive interface to elevate your reading experience. 项目地址:…

2026/9/21 3:43:04 阅读更多 →
使用 Go 标准库 time 正确处理时间:Uber Go Style Guide 时间处理实践全解析

使用 Go 标准库 time 正确处理时间:Uber Go Style Guide 时间处理实践全解析

文档教程代码质量Lint 【免费下载链接】guide The Uber Go Style Guide. 项目地址: https://gitcode.com/gh_mirrors/gu/guide 点击查看 免费下载 导读 时间处理是 Go 开发中最容易被低估的复杂度来源——"一天有 24 小时""一小时有 60 分钟"…

2026/9/21 3:43:04 阅读更多 →
Toonflow是什么?AI短剧工厂完整指南:2小时把小说变成成片,创作效率提升10倍

Toonflow是什么?AI短剧工厂完整指南:2小时把小说变成成片,创作效率提升10倍

Toonflow是什么?AI短剧工厂完整指南:2小时把小说变成成片,创作效率提升10倍 【免费下载链接】Toonflow-app Toonflow 是一款 AI 短剧漫剧工具,能够利用 AI 技术将小说自动转化为剧本,并结合 AI 生成的图片和视频&#…

2026/9/21 3:42:03 阅读更多 →
Macrotrends 历史金融数据提取实战:基于 browser-harness 的四种无浏览器抓取模式

Macrotrends 历史金融数据提取实战:基于 browser-harness 的四种无浏览器抓取模式

Macrotrends 历史金融数据提取实战:基于 browser-harness 的四种无浏览器抓取模式 【免费下载链接】browser-harness Browser Harness | Self-healing harness that enables LLMs to complete any task. 项目地址: https://gitcode.com/gh_mirrors/br/browser-har…

2026/9/21 3:42:03 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →