生效日期:2026-05-23
Reading Pal 是一款阅读记录与番茄钟计时应用,由 林承威(Darren Lin)(个人开发者,台湾)运营。本政策说明您在使用 Reading Pal 时,我们收集哪些个人信息、收集目的、向谁共享,以及您可行使的相关权利。
本政策适用于 Reading Pal 移动应用及其后端 API。不适用于您所关联的第三方服务(如 Google)——此类服务由其各自的隐私政策规范。
| 字段 | 来源 | 目的 |
|---|---|---|
| 电子邮件地址 | 您(注册时)或 Google OAuth | 账号识别、登录、账号找回 |
| 显示名称 | 您或 Google OAuth | 在应用内显示 |
| 头像 URL | Google OAuth(如适用) | 个人头像 |
| 密码哈希值(bcrypt) | 您(仅限邮箱+密码注册) | 身份验证——我们从不存储或查看您的明文密码 |
| 语言与时区 | 注册时设置 | 界面本地化;确保通知在正确时间送达 |
sub)、电子邮件、email_verified 标志,以及原始 id_token 载荷(用于验证审计)。最长保留至账号删除为止。| 字段 | 目的 |
|---|---|
| 匿名设备 ID(设备端生成的 UUID) | 将推送令牌与使用片段关联至特定设备,且不关联至手机硬件标识符或 IMEI |
| FCM 推送令牌(Firebase 云消息) | 向您的设备发送推送通知 |
| 应用版本与操作系统版本 | 崩溃诊断;兼容性检查 |
每次对后端的请求均记录以下信息:
我们在生产环境不记录请求体。
我们仅针对以下四种事件类型维护审计日志:deletion_requested、deletion_cancelled、deletion_executed、export_requested。每条事件记录以下信息:
这些记录在您的账号删除后仍予保留,并于执行后保存 6 个月,以证明我们已履行您的请求。记录中不包含任何书籍笔记或阅读内容。账号永久删除后,留存记录不含任何个人身份信息——仅有事件类型、时间戳与数字型 ID。
当应用崩溃或后端发生错误时,我们发送至 Sentry 的报告包含:
我们不发送:您的电子邮件地址、显示名称、IP 地址、请求体、Cookie、刷新令牌,或任何自由文本笔记内容。
Sentry 保留这些报告 7 天(免费版默认值)。Sentry 数据托管于欧盟地区(de.sentry.io)。详见第 4 节。
| 目的 | 使用的信息 |
|---|---|
| 提供服务——跨设备同步书库、记录阅读片段、计算阅读统计数据 | 第 2(a)、2(c)、2(h)、2(i) 节 |
| 身份验证与账号安全(令牌轮换、会话失效) | 第 2(a)、2(b)、2(d) 节 |
| 推送通知(各类型严格采用户主动开启制——详见第 10 节) | 第 2(d) 节 FCM 推送令牌 |
| 崩溃诊断与服务稳定性 | 第 2(g) 节 |
| 安全防护——依 IP 与设备的限流、身份验证流程的欺诈检测、防范撞库攻击 | 第 2(d)、2(e) 节 |
| 证明已履行删除/导出请求 | 第 2(f) 节 |
计划中的未来用途——应用内广告: 待 Reading Pal 正式上线并稳定运营后,我们计划引入 Google AdMob 广告。届时,本政策将于生效前 30 天更新。提供给 AdMob 的信息仅限于 Android 广告 ID 及情境式数据(例如应用类别)。我们不会将您的账号信息、电子邮件、显示名称或阅读内容提供给广告商。
| 提供方 | 角色 | 共享信息 | 地区 |
|---|---|---|---|
| Google(OAuth) | Google 登录 | 标准 OpenID Connect 声明(sub、email、name、picture) | 全球 |
| Google Firebase 云消息(FCM) | 推送通知投递 | FCM 注册令牌;推送通知标题与内容 | 全球 |
| Google Play | 应用分发与授权 | 标准安装元数据(不含阅读数据) | 全球 |
| Sentry(Functional Software, Inc.,美国;数据托管于欧盟) | 崩溃与错误监控 | 详见第 2(g) 节——堆栈跟踪、数字型用户 ID、版本、路径 | 欧盟 |
| Apple / APNs | iOS 推送投递(仅于 iOS 版本上线后适用——目前为 Android 专用) | APNs 设备令牌+推送载荷 | 全球 |
| (未来)Google AdMob | 应用内广告 | Android 广告 ID + 情境式数据 | 全球 |
我们从不将个人信息出售给任何第三方。
您的所有账号、书库及阅读数据均存储于 DigitalOcean 法兰克福(德国,欧盟)数据中心(区域:FRA1)。欧盟用户的数据不会离开欧盟境内。
Sentry 崩溃报告同样使用 Sentry 的欧盟地区(de.sentry.io)。
部分次处理方(Google、AdMob)在全球范围内运营,可能依其自身隐私条款在不同地区间传输数据以维持服务可靠性。
您可在应用内直接行使大多数权利,无需发送电子邮件。
| 权利 | 行使方式 |
|---|---|
| 查阅 | 设置 → 账号 → "导出我的数据"——生成完整 JSON 导出文件,通常数分钟内即可获取;大型书库最长可能需 24 小时 |
| 更正 | 设置 → 个人资料——直接编辑显示名称及其他个人资料字段 |
| 删除 | 设置 → 账号 → "删除账号"——启动 30 天宽限期。在此期间重新登录即可取消。30 天后,您的所有个人信息将从数据库中永久删除(审计日志依第 2(f) 节另行保留 6 个月)。 |
| 可携性 | 与查阅权相同的 JSON 导出 |
| 限制处理 | 请发送电子邮件(第 12 节) |
| 拒绝营销 | 设置 → 通知 → "营销推送"——关闭(默认值即为关闭) |
欧盟/欧洲经济区用户: 您亦有权向所在国家的监管机构(如各国数据保护机构)提出投诉。
台湾用户: 相关权利依据《个人资料保护法》行使。
我们将于收到请求后 30 天内予以回应。
Reading Pal 并非面向 13 岁以下儿童设计。我们不会在知情情况下收集未满 13 岁用户的个人信息。如您认为有儿童创建了账号,请发送电子邮件至 tn08869679@gmail.com,我们将删除该账号。
Reading Pal 是移动应用,不使用网页 Cookie。我们使用以下标识符:
| 标识符 | 类型 | 目的 | 可重置? |
|---|---|---|---|
| 设备 ID | 首次启动时在本地生成的匿名 UUID | 会话与推送路由——不关联至硬件标识符 | 是——卸载后重装即生成新标识符 |
| FCM 令牌 | 由 Firebase 分配 | 推送通知投递 | 是——Firebase 会定期刷新;退出登录时亦会清除 |
| Android 广告 ID | Google(未来,仅限启用 AdMob 时) | 广告定向 | 是——设置 → Google → 广告 → 重置广告 ID |
| 数据类别 | 保留期限 |
|---|---|
| 账号、书库、阅读片段、设置、成就、积分 | 使用期间保留;删除账号后进入 30 天宽限期,期满后永久删除 |
| 审计日志(删除/导出事件记录——不含个人阅读内容) | 事件类型+时间戳+数字型用户 ID 于执行后保留 6 个月;IP、设备 ID 与用户填写的原因在账号永久删除时设为 NULL |
| 服务器访问日志(IP 地址、请求元数据) | 30 天,到期后自动轮换清除 |
| 崩溃报告(Sentry) | 7 天(Sentry 免费版默认值) |
| 刷新令牌记录 | 至令牌过期或明确撤销为止 |
营销推送通知默认为关闭。您可主动开启:设置 → 通知 → "营销推送"。您可随时在同一位置关闭。
我们不发送营销电子邮件。
重大变更(新增信息类别、新增次处理方、扩大现有信息用途)将通过应用内横幅,于生效前 30 天公告。更新版本将标注日期。
轻微修订(错别字修正、不影响您权利的说明澄清)将立即生效,不另行事先通知。
预先披露的未来变更:
如有隐私相关问题、投诉,或应用内无法处理的删除/查阅请求:
我们致力于在 30 天内回应。
| 版本 | 日期 | 摘要 |
|---|---|---|
| 1.0 | 2026-05-23 | 初始版本 |