核心用法
withings-family 是一个用于从 Withings API 获取健康数据的工具技能,支持多家庭成员独立管理。用户需先在 Withings 开发者平台创建应用,获取 CLIENT_ID 和 CLIENT_SECRET 并配置环境变量。每个家庭成员通过独立 OAuth 认证(自动生成 tokens-{userId}.json),无需共享凭证。支持命令包括体重查询(weight)、身体成分分析(body,含脂肪率、肌肉量、骨量、水分)、活动数据(activity,步数、距离、卡路里)及睡眠监测(sleep,深睡、REM、睡眠评分)。数据以 JSON 格式返回,默认返回最近 5-7 条记录,可自定义时间范围。
显著优点
1. 原生多用户支持:家庭场景下每位成员拥有独立令牌文件,权限隔离清晰,切换用户只需修改命令行参数。
2. 自动化 OAuth:内置本地回调服务器(withings_oauth_local.py),简化授权流程,无需手动复制授权码。
3. 数据维度全面:覆盖体重、体成分、活动、睡眠四大健康领域,适配 Body+、Sleep Analyzer、ScanWatch 等主流设备。
4. 令牌自动刷新:后台自动处理 token 过期,减少人工维护成本。
潜在缺点与局限性
- 硬件依赖:身体成分数据需兼容设备(如 Body+),基础款体重秤仅支持体重;睡眠数据需 Sleep Analyzer 或支持睡眠追踪的手表。
- API 稳定性风险:Withings 服务器偶发 503 错误,且 API 变更可能导致 skill 需要更新适配。
- 本地化限制:所有数据存储于云端(Withings 服务器),离线不可用;JSON 输出需用户自行解析可视化。
- 隐私合规:健康数据属敏感个人信息,需用户自行确保符合 GDPR/HIPAA 等法规要求。
适合人群
- 已拥有 Withings 智能设备(体重秤、睡眠分析仪、手表)的个人或家庭用户
- 需要将健康数据集成到自定义工作流的技术爱好者
- 关注家庭成员健康追踪的极简主义者(无需购买家庭版订阅)
常规风险
- 凭证泄露风险:
CLIENT_ID/CLIENT_SECRET及用户令牌文件(tokens-*.json)若未设置 600 权限或被意外提交至代码仓库,可能导致数据泄露。 - 授权范围过宽:OAuth 申请
user.metrics和user.activity权限,需信任 skill 不会滥用或过度采集。 - 设备同步延迟:若用户未及时同步设备,API 返回空数据,可能被误判为故障。
- 单点故障:依赖 Withings 云服务,厂商服务中断或账号封禁将直接导致 skill 失效。