日期:2026-10-25。今天上午 09:09,我用一条最普通的 GET 推翻了项目里活了将近一个月的定论——「成长任务接口读不到任务列表,只能靠人工截图」。接口一直是通的。下面是这条假结论怎么长出来的、怎么被戳破的,以及修完之后顺手治好的连带问题。
我维护着一套自动化工作台,每天要盘点「积分成长任务」:哪些已领、哪些还欠、每个任务什么时候过期、各值多少分。最初的做法很土——打开客户端页面,人眼数一遍,把结果手抄进一份 markdown 台账。
台账里当时有 8 条记录。问题是它不会自己更新:领过的任务没人回来改状态,于是卡面上常年挂着「待领」条目,其中 4 条(一次活动 100 分、一个应用 100 分、官方公众号 100 分、桌面端对话 100 分)其实早就标记为已领取了。人看着卡面以为自己还有 400 分没拿,点进去,页面显示已领取。看板和现实脱节,这类错误最难被发现,因为两边都不报错。
更糟的是代码注释里那句「接口读不到任务列表」。这句话有出处,有上下文,写在文件头,被后续所有改动继承。它让每个接手的人都默认「这条路走不通」,于是没人再去试。
复盘下来,这类结论要活过一个月,需要三个条件同时成立,缺一个都活不了:
第三条最致命。系统从来不缺待办,缺的是「当前凑合方案足够痛,痛到有人愿意重试」。这次重启它的原因很朴素:我要把这套台账做成自动的,绕不过这个口子。
既然注释说读不到,那就先验证这句话本身,而不是顺着它去找替代方案。做法是最笨的那种:
第 1 条就中了:GET /v2/activity/growth/tasks 返回 200,响应里带四个关键字段——accept_status(领取状态)、progress(进度)、valid_end(过期时间)、reward_credit(分值)。台账手工抄的那四列,接口一样不少。
也就是说:一个月前那句「读不到」,很可能只是打错了路径,或者打的是一个需要额外参数的变体,然后把一次失败写成了通用结论。一句「读不到」的背后,通常只是一次 404。
修的时候我给自己定了一条硬约束:这个工具永远只有 GET。不写领取接口,不做代领,不模拟点击。自动化只负责「告诉你有什么可领」,实际领取动作必须人来做。这条约束不是为了省事,是为了让工具永远处在「读」的安全区——出问题最多显示错,不会在账户侧产生任何实际动作。
落地是两处改动:
一、新建读取器。 命令行一条命令输出结构化清单;读不到就明确写「读不到」,绝不返回空数组冒充「没有任务」。空数组和失败在语义上完全是两件事,混在一起就是又一个假绿。
二、看板卡面改成「实读优先 + 台账兜底」,并把数据来源打在卡面上。 比如角标写「来源:/v2/activity/growth/tasks 09:09 实读」,或者「来源:手工台账(10-23,已过期 2 天)」。这一行小字是整个修复里最便宜也最值钱的部分——它让「这数字可不可信」变成一眼可见的事,而不是靠记忆去推断。
改完重建,卡面从「8 条待领」变成「9 项待领 / 合计 700 分」:4 条假待领消失,同时冒出一批之前根本不知道存在的真待办——专家类 6 条(其中两条 11-13、11-15 就到期)、专家团召唤 3 次 100 分、套用模板 100 分、灵感做同款 100 分。
注意这里的落差方向:修之前是「假的多、真的少」,修之后是「真的比想的多」。同一个页面,两种错法都出现过——先虚报有货,再漏报有货。前者浪费人力,后者直接丢收益,而且后者更隐蔽。
最后补一句今天真正学到的:推翻一句旧注释的成本,往往只是一次 GET。我花在这条路径上的时间不到十分钟,而它挡住了一整个月的自动化。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。