奖励与推荐
邀请朋友、赚取推荐奖励、兑换促销码,并解锁 Discord 社区角色——应用内的奖励与推荐界面。
OpenHuman 将三种松散相关的增长机制打包在一个界面下: 推荐计划 (分享代码,朋友转化后获得积分), 促销券 (兑换代码以获得促销积分),以及一个 社区奖励 追踪(关联 Discord,随着你达到使用里程碑解锁角色)。邀请码管理位于独立的屏幕中。
这一切都需要已登录的后端会话。在仅本地会话下,奖励页面会显示空状态,提示你登录——这些功能都无法离线使用。
奖励界面
位于 /rewards ,并带有三个标签页。中间的 奖励 (社区)标签页默认选中。
推荐
你的推荐码、收益和被推荐用户活动
奖励
Discord 连接、进度环和可解锁的社区角色
优惠券
兑换促销代码以获取促销积分 + 兑换历史
推荐
每个账户只有一个 推荐码。可复制,或使用 分享 (系统原生分享面板,不可用时回退到剪贴板)发送一条预填消息,其中包含你的代码和应用下载链接。
该标签页显示四个卡片:你的代码、 累计获得 (美元)、 待完成推荐,以及 已完成 推荐。下方的 活动表 列出每个被推荐用户(已隐藏身份,例如 j***@gmail.com)、一个状态徽标、奖励金额和时间戳。
已加入
被推荐用户已注册,但尚未转化
Completed
被推荐用户已转化 - 推荐奖励已入账
已过期
关系已失效(保留项;由后端驱动)
如果你是被别人推荐的,并且仍符合条件, 申请 表单可让你输入他们的邀请码。资格(canApplyReferral)由后端决定——通常只有尚未订阅或尚未使用过邀请码的用户才能领取。应用后,表单会被替换为已关联代码的确认信息。
奖励金额、转化规则和资格全部由 服务器端强制执行。桌面端核心在这里仅是一个轻量适配器。
底层实现
推荐域(src/openhuman/hosted/referral/)是一个无状态 RPC 适配器,而不是业务逻辑。之所以存在它,是因为桌面 WebView fetch 可能因通用的“加载失败”(CORS/TLS/WebKit)而失败,因此这些调用复用了与计费相同的后端 reqwest 路径。
referral.get_stats
GET /referral/stats
代码、总计和被推荐用户行
referral.claim
POST /referral/claim
应用推荐码(可选设备指纹用于滥用信号)
两者在无 后端会话令牌 时都会直接失败。
优惠券(兑换)
优惠券标签页用于兑换 促销代码 以获得促销积分——这与推荐奖励是分开的。两个卡片显示你的 促销积分余额 (美元)以及 已兑换代码数量。输入代码并兑换;兑换要么立即生效,要么在取决于后续操作时被记为 待定 。
一个 最近兑换 表格列出每个代码、奖励金额、状态以及兑换时间。
已应用
已完成 - 积分已到你的账户
待执行操作
等待触发操作的条件优惠券
已兑换
已接受,尚未完成
社区奖励与 Discord
奖励标签页通过游戏化方式激励使用。一个 进度环 显示你已解锁的成就数占总数的比例,而 角色与奖励 列表描述每个里程碑(有些包含可选的美元积分)。底部的状态徽标(当前连胜、累计代币)汇总你的活动情况。
奖励以 Discord 角色的形式发放,因此该标签页围绕关联你的 Discord 账户构建:
连接 Discord 运行 OAuth 授权流程(
openhuman.auth.oauth_connect,提供方为discord);成功后快照会刷新并显示你的 Discord 用户名。加入 Discord 会打开社区服务器邀请。
断开连接 取消关联该账户(清除已存储的 Discord ID,幂等)。
关联后,每个已解锁的成就都会显示其 Discord 角色分配状态:
已分配
角色已在服务器上授予
待处理
已解锁,但角色尚未分配
加入以领取
已关联但不在服务器中——加入后即可获得该角色
如果你已解锁带角色的成就但尚未加入服务器,会显示一个 领取横幅 提示你加入。成员状态之一为 member, not_in_guild, not_linked,或 unavailable.
基于 GitHub 的贡献者奖励是一个 独立的 机制:一个 GitHub Actions 工作流(
.github/workflows/contributor-rewards.yml),会在贡献者的首个 PR 合并时发布一条 Discord/周边商品邀请评论。它不属于应用内的奖励界面,也不使用应用内的 GitHub OAuth。
邀请码
这个 邀请 页面(/invites)与推荐码不同。它用于管理个人 邀请码 ,用于限制新用户注册:
兑换 - 如果你还未被邀请,请输入邀请码以领取你的名额。
你的邀请码 - 你已发放的代码列表。每一行显示代码(等宽字体)、复制按钮以及 启用/禁用 状态。当某个代码的使用次数耗尽时,它会变为禁用(
currentUses >= maxUses),并显示是谁领取了它。
邀请码包含 类型 (USER 或 CAMPAIGN), maxUses/currentUses 计数器,以及 usageHistory 记录谁在何时兑换了它们。
另请参阅
最后更新于