Safe Haven 评分提交失败,限频或设备 token 重复怎么处理
Safe Haven 评分的基本规则
- 只支持 整数评分:1 / 2 / 3 / 4 / 5 星
- 每台设备对每个应用只能评一次
- 每 IP 每小时最多10 次评分提交
- 服务端存设备 token 哈希和 IP 哈希,不存原始值
最常见的评分失败原因
原因 1:你已经评过这个应用了
Safe Haven 客户端首次提交评分时会生成一个设备唯一 token,然后把 SHA256(token + packageName) 提交给服务端。服务端存这个哈希——如果同一个哈希再次出现,认为是同一设备重复评分,直接忽略。
你看不到"你已经评过了"的提示——客户端可能根本不允许你再次提交评分。如果想重新评,需要卸载 Safe Haven 再装(会重新生成 device token),但不推荐这样做。
原因 2:达到 IP 限频
每小时 10 次的硬限制。如果你短时间内给多个应用评了分,服务端会拒绝后续提交。
解决:
- 等一个小时再试(限频窗口是滚动的)
- 用不同的 IP(切 Wi-Fi / 移动数据 / VPN)
- 如果多个设备在同一根网线下,10 次是共享的
原因 3:网络问题
评分提交走 POST 请求到服务端。如果网络不稳定,请求可能超时或被 Cloudflare Workers 的 5xx 拦截。
解决:等网络恢复后重试。
为什么不允许重复评分
Safe Haven 的评分防刷设计是:每设备每应用只能评一次。这个限制是硬的,没有"修改评分"或"重新评分"的功能。
理由:
- 防止恶意刷分(开发者自己反复改评分)
- 保护已有评分的完整性(历史评分不受新版本影响)
- 简化服务端逻辑(不需要处理"评分变更"的历史记录)
如果你对自己之前的评分不满意,只能等 Safe Haven 未来版本是否会加"修改评分"功能。
评分和 Top Charts 的关系
Safe Haven 的 Top Charts 是设备端实时计算的,输入是每个应用的 ratingSum 和 ratingCount(从索引里拿)。所以:
- 你刚提交的评分 → 客户端本地看不到新的聚合值(因为索引还没更新)
- 服务端索引更新 → 其他设备下次同步时才能看到新的 ratingSum 和 ratingCount
- 通常延迟:几分钟到几小时(取决于索引同步频率)
不要期望提交评分后立刻在榜单上看到变化。
评分数据公开吗
Safe Haven 索引里只有聚合后的 ratingSum 和 ratingCount,不公开每条评分的详细内容、提交时间、评分者信息。
这是故意的设计:
- 保护用户隐私(不记录可识别的评分者信息)
- 防止有人反推刷分行为模式(爬虫拿不到原始数据)
如果评分功能一直有问题
- 打开设置 → 调试日志,看看 Network 类错误有没有异常
- 确认你用的是最新版 Safe Haven(旧版本可能有 bug)
- 提交到 GitHub Issues 或 Discord 求助
Discord 入口:discord.gg/VYubQJfcYM(README 里也有链接)。