华为云开发者社区「实践任务」自动化实践:用 API 与浏览器脚本高效完成每日成长任务
背景:成长中心的任务体系
华为云开发者成长中心(developer.huaweicloud.com/grow)把社区参与变成了可量化的积分任务:每日浏览案例、Star 代码仓、体验 AI DevSpace、写文章……对于想长期积累积分兑换权益的开发者来说,这些任务琐碎但重复。
本文记录我分析并自动化这套任务体系的过程:如何通过抓包定位任务判定接口、理解每个任务的发放逻辑,以及最终用脚本把每日任务压缩到几分钟。文末附上各任务的判定要点速查表。
一、任务体系结构
成长中心的任务列表来自一个 POST 接口:
POST /rest/developer/fwdu/rest/developer/user/hdcommunitysoservice/v1/growth/mission/query-mission-list-by-condition
{"page_no":1,"page_size":8,"category_key":"DAILY_MISSIONS"}
返回的 14 个任务分属三个体系,判定方各不相同:
- 鸿蒙开发实践中心(harmonybp.developer.huaweicloud.com):自带 /api/growth/tasks 接口,前端有计时和主动检查逻辑;
- AI Agent 开发实践中心(hands-on-agent.developer.huaweicloud.com):纯静态页 + 行为埋点上报,判定完全在服务端;
- 成长中心自身:每日任务由子平台上报后统一结算入积分流水。
二、逐个任务拆解
1. 每日浏览一个鸿蒙案例(+10)
打开案例详情页后,前端会依次调用三个接口:
GET /api/growth/tasks/case-view-daily # 查任务配置
POST /api/growth/tasks/case-view-daily/sessions # 开始计时会话
POST /api/growth/sessions/{token}/heartbeat # 每5秒心跳
心跳 token 是服务端签名的 JWT 风格串,累计满 30 秒自动判定完成。要点:页面必须保持可见状态(document.visibilityState === 'visible'),后台标签页不计时。
2. 每日 Star 一个鸿蒙案例仓(+30)
判定走 external_check 模式:服务端去 GitCode 查绑定账号名下当天的 Star 记录。前端有个隐藏福利——POST /api/growth/tasks/gitcode-star/submit 带 {"action":"check","force":true} 可以立即触发判定,不用等定时扫描。
注意 GitCode Star 数据有约 1-2 分钟同步延迟,刚 Star 完立刻查会返回 missing。另外任务要求每天 Star 不同的仓库且不可取消,仓库池就在案例中心各案例详情页的 publicRepo 字段里。
3. 每日体验 AI DevSpace(+30)
AI Agent 实践中心的静态页里藏着积分发放的唯一依据:POST /api/track/aishell_click。点击"前往AI DevSpace实践"按钮时,前端把华为云账号名和 Domain ID 通过 sendBeacon 上报。服务端收到即记完成,无需真的在 DevSpace 里操作。
4. 每周提 Issue / Star Agent 仓(+60 / +50)
这两个任务没有前端检查接口,完全依赖激励服务端的周期扫描。实践:用 GitCode OpenAPI(api.gitcode.com/api/v5)POST /repos/{owner}/{repo}/star 和 issues 接口即可完成对应行为,Author 为绑定的 GitCode 账号。Issue 建议提真实的文档改进(如 README 步骤编号错误),既完成任务也对社区有价值。
三、效率工具链
整套流程我用 Playwright 驱动 headless Chromium 实现:
- 注入华为云登录 Cookie 建立会话;
- 打开案例详情页停留 45 秒(心跳自动完成浏览任务);
- GitCode API 完成 Star;
- 调 submit 接口 force 检查,跳过同步等待;
- 从 Agent 中心点击 DevSpace 入口完成埋点上报。
全程约 3 分钟,产出 70 积分/天的底仓。
四、踩坑记录
- UTC 结算周期:积分流水按 UTC 记账,北京时间凌晨 0-8 点完成的任务会被算进"前一天",若前一天已发放则不再入账。每日任务建议在北京时间 8 点后做。
- 成长中心展示延迟:子平台判定成功到成长中心卡片刷新,延迟约 5-10 分钟,别急着以为没成功,先查 bonus-flow 流水。
- CSRF 轮换:devdata 接口的 csrf-eco Cookie 会话内会轮换,直接复用抓包的 curl 容易报 CSRF unequal,用浏览器上下文发请求最稳。
五、任务速查表
| 任务 | 积分 | 判定方 | 可自动化 |
|---|---|---|---|
| 每日浏览鸿蒙案例 | +10 | 鸿蒙中心 dwell 计时 | ✅ 页面停留30秒 |
| 每日 Star 鸿蒙案例仓 | +30 | external_check + force 检查 | ✅ GitCode API |
| 每日体验 AI DevSpace | +30 | aishell_click 埋点 | ✅ 点击入口链接 |
| 每日发布文章 | +60 | 发布行为本身 | ✅ 本文即是 |
| 每周提 Issue / Star Agent 仓 | +60/+50 | 服务端周期扫描 | ✅ GitCode API |
| 每周微认证 | +200 | 考试通过 | ❌ 需本人参加 |
结语
自动化社区任务的本质是理解平台的判定契约:哪个接口代表"完成"、由谁在什么时机校验。这套分析方法同样适用于其他有成长体系的开发者社区。唯一需要坚守的底线是——让自动化的行为产生真实价值(比如提一个真实的 Issue、写一篇真实的文章),而不是制造垃圾数据冲积分。
文中涉及的接口与行为均来自公开页面抓包分析,仅用于个人效率提升。祝各位早日攒够积分换键盘。
- 点赞
- 收藏
- 关注作者
评论(0)