核心用法
withings-family 是一款面向家庭场景的健康数据聚合工具,基于 Withings 官方 API 实现多用户支持。用户可通过 CLI 方式查询体重历史、身体成分(脂肪率、肌肉量、骨量、水分)、每日活动(步数、距离、卡路里)及睡眠质量等多维度健康指标。
关键特性:
- 多用户架构:每个家庭成员独立 OAuth 认证,token 文件隔离存储(
tokens-{userId}.json),支持自动刷新 - 自动化认证:提供
withings_oauth_local.py脚本,内置本地回调服务器(localhost:18081),简化首次授权流程 - 模块化查询:统一 CLI 格式
withings.py <userId> <command>,支持 weight/body/activity/sleep 四大数据类型
显著优点
1. 官方 API 集成:直接对接 Withings 开发者平台,数据来源权威可靠
2. 家庭场景优化:原生支持多用户切换,无需频繁更换账号或复制 token
3. 数据维度全面:覆盖体重趋势、身体成分分析、活动追踪、睡眠结构及睡眠评分
4. Token 生命周期管理:自动处理 access token 过期与刷新,降低维护成本
潜在局限
- 硬件依赖:身体成分数据需兼容设备(Body+/Body Comp),基础功能需 Withings 设备支持
- 环境配置门槛:需注册开发者账号、配置 Client ID/Secret 环境变量,对非技术用户有一定学习成本
- 本地运行限制:OAuth 回调依赖 localhost,远程部署需额外网络配置
- API 稳定性风险:Withings API 偶发 503 服务不可用,需容错重试机制
适合人群
- 已拥有 Withings 智能秤/手表/睡眠分析仪的家庭用户
- 需要为多名家庭成员追踪健康趋势的技术爱好者
- 希望将健康数据集成到自动化工作流(如 Home Assistant)的进阶用户
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 数据隐私 | 健康敏感数据本地存储,token 文件需限制权限(mode 600) | 确保 `~/.openclaw/withings-family/` 目录权限严格 |
| OAuth 凭证泄露 | Client ID/Secret 若硬编码或误提交存在泄露风险 | 使用环境变量或独立 .env 文件,避免版本控制 |
| 服务依赖 | 单点依赖 Withings API 可用性 | 实现本地缓存与降级策略 |
| 授权范围 | 需申请 `user.metrics` 和 `user.activity` 权限 | 按需申请,定期审计授权范围 |