核心用法
withings-family 是一个用于访问 Withings 健康生态系统的技能,支持从智能体重秤、睡眠分析仪等设备获取多维度健康数据。
主要功能模块
| 命令 | 功能描述 | 输出内容 |
|------|----------|----------|
| `weight` | 体重测量 | 5条最近体重记录(含时间戳) |
| `body` | 身体成分分析 | 体脂率、肌肉量、骨量、水分、BMI |
| `activity` | 日常活动追踪 | 步数、距离、卡路里消耗、活动强度分布 |
| `sleep` | 睡眠质量分析 | 睡眠时长、深/浅/REM睡眠分段、睡眠评分 |
| `auth` | OAuth认证流程 | 生成授权URL或交换授权码 |
多用户架构设计
该技能原生支持家庭场景,每个成员拥有独立的令牌文件(tokens-<userId>.json),通过首个参数区分用户身份:
python3 scripts/withings.py alice weight python3 scripts/withings.py bob sleep
认证机制
- 推荐方式:
withings_oauth_local.py自动启动本地回调服务器(端口18081)完成OAuth - 备用方式:手动复制授权码的两步流程
- 令牌自动刷新机制,无需手动维护
---
显著优点
1. 官方API直连:基于Withings开发者平台官方接口,数据准确性有保障
2. 多用户原生支持:区别于单用户设计,令牌隔离存储,适合家庭健康管理场景
3. 数据维度完整:覆盖体重趋势、身体成分、活动量、睡眠质量四大健康核心指标
4. 自动化认证流程:本地服务器自动捕获回调,减少用户操作步骤
5. 设备生态兼容:支持Body+、Body Comp、Sleep Analyzer、ScanWatch等全系列产品
---
潜在缺点与局限性
| 限制类型 | 具体说明 |
|----------|----------|
| **前置成本** | 需注册Withings开发者账号、创建应用、配置回调URL,入门门槛较高 |
| **环境依赖** | 必须设置`WITHINGS_CLIENT_ID`和`WITHINGS_CLIENT_SECRET`环境变量 |
| **网络要求** | 依赖Withings云服务,API故障(503错误)时无法获取数据 |
| **设备依赖** | 身体成分数据需兼容型智能秤,普通体重秤无法提供体脂等指标 |
| **数据时效性** | 需用户主动同步设备,未同步时返回空数据 |
| **隐私集中化** | 健康数据需经Withings云端中转,非本地直连设备 |
---
适合人群
- 家庭健康管理者:需要追踪多位成员体重、健身进度
- 量化自我爱好者:希望整合多源健康数据进行长期趋势分析
- Withings设备用户:已拥有Body系列体重秤、Sleep Analyzer等硬件
- 自动化健康报告需求者:希望通过脚本定期导出健康档案
---
常规风险
1. OAuth令牌安全:令牌文件以600权限存储于本地,但仍需防范系统级入侵
2. 凭证泄露风险:CLIENT_ID和CLIENT_SECRET若泄露,可能被滥用API配额
3. 授权范围较宽:请求user.metrics和user.activity作用域,涵盖敏感健康信息
4. 第三方中转信任:数据流经Withings法国服务器,需接受其隐私政策
5. 刷新失败导致中断:长期未使用可能导致刷新令牌失效,需重新授权