withings-family

⚖️ Withings 家庭健康数据管家

基于 Withings 官方 API 的多成员健康数据获取工具,支持体重、体脂、活动及睡眠数据本地化管理,零第三方依赖确保数据隐私安全。

收藏
2.5k
安装
857
版本
v1.1.2
CLS 安全性认证2026-07-01
点击查看完整报告 >

使用说明

Withings Family 是一款面向家庭场景的健康数据同步技能,通过调用 Withings 官方 API,支持从智能秤、睡眠分析仪等设备获取多位家庭成员的健康指标。

核心用法

该技能通过 Python 脚本与 Withings API 交互,采用 OAuth 2.0 认证机制。用户需先创建 Withings 开发者应用获取 Client ID 与 Secret,随后为每位家庭成员执行授权流程,生成独立的 Token 文件(tokens-<userId>.json)。支持的数据类型包括:体重历史记录、身体成分分析(脂肪率、肌肉量、骨量、水分)、日常活动数据(步数、距离、卡路里消耗)以及睡眠质量分析(深睡、浅睡、REM 时长与睡眠评分)。通过命令行参数指定用户 ID 和数据类型,即可按需拉取结构化 JSON 数据。

显著优点

首先,原生支持多用户架构,每位成员拥有独立的 Token 存储与自动刷新机制,无需频繁重复授权。其次,纯 Python 标准库实现(无第三方依赖),显著降低了供应链攻击风险,同时确保跨平台兼容性。数据安全方面,敏感凭证默认存储于用户本地目录(~/.openclaw/withings-family/),并设置 600 文件权限严格限制访问;所有 API 通信均通过 HTTPS 加密。此外,完善的输入验证机制(正则限制 User ID 格式)有效防止路径遍历攻击,OAuth 流程中采用随机 State 参数与本地回调服务器(localhost:18081)设计,杜绝 CSRF 风险。

潜在缺点与局限性

该技能要求用户具备一定的技术能力:需自行注册 Withings 开发者账号、创建应用并配置环境变量,初始门槛较高。作为 T3 来源的社区项目,长期维护更新与功能迭代依赖个人开发者,稳定性不及官方商业软件。数据同步采用按需拉取模式,非实时推送,无法实现设备数据的即时更新。此外,仅支持 Python 3 环境,且缺乏图形界面,对非技术用户不够友好。

适合的目标群体

主要适用于已购置 Withings 智能设备(Body+ 体重秤、Sleep Analyzer、ScanWatch 等)的家庭用户,特别是需要追踪多位成员健康数据的健康管理者。适合注重数据隐私、偏好本地化处理的技术爱好者,以及需要将健康数据集成到自建系统或工作流中的开发者。对于无编程基础或无法提供 API 凭据的用户则不适用。

使用风险

使用该技能需妥善保管 Client ID/Secret 及 Token 文件,避免凭证泄露导致健康数据暴露。虽然 Token 自动刷新,但仍依赖 Withings 服务的持续可用性,API 变更或服务中断可能影响功能。首次配置错误可能导致授权失败,需检查回调 URL 与网络环境。此外,本地 Token 文件若未备份,系统重装或文件损坏将需重新执行完整的 OAuth 授权流程。

安全解读

核心用法

withings-family 是一款开源 Skill,用于从 Withings 智能设备(体重秤、睡眠分析仪、智能手表等)获取多家庭成员的健康数据。采用 CLI 交互模式,通过 python3 scripts/withings.py <userId> <command> 执行,支持 weight(体重)、body(体脂/肌肉/骨量/水分)、activity(步数/卡路里)、sleep(睡眠时长/质量)四大核心指标查询。

多用户架构是其亮点设计:每个家庭成员通过独立 OAuth 认证,Token 以 tokens-<userId>.json 形式隔离存储,权限设为 600,避免家庭隐私数据交叉泄露。首次使用需先在 Withings 开发者门户创建应用获取 Client ID/Secret,再通过本地回调服务器完成授权。

显著优点

1. 家庭场景深度适配:原生支持多用户 Token 管理,无需反复切换账户,适合夫妻、父母子女共同使用
2. 数据维度全面:覆盖体重趋势、身体成分(8 项指标)、活动量、睡眠质量四大健康维度

3. 安全设计到位:Token 文件权限 600、HTTPS 加密传输、user_id 输入净化防路径遍历、纯标准库实现零第三方依赖

4. 合规性良好:符合 GDPR/CCPA、数据最小化原则、显式用户授权机制

5. 部署轻量:仅依赖 Python3,无需复杂基础设施

潜在缺点与局限性

  • 来源可信度 T3:个人开发者维护(odrobnik),无企业/基金会背书,存在供应链风险
  • Token 存储方式:OAuth Token 以明文 JSON 存于本地文件系统,虽权限受限但非系统密钥存储
  • 网络稳定性不足:无请求重试/超时机制,API 波动时易失败
  • 设备依赖性强:身体成分数据需兼容秤(Body+/Body Comp),睡眠数据需睡眠分析仪
  • 隐私敏感度:健康数据属敏感个人信息,需用户充分知情

适合人群

  • 已购买 Withings 智能设备(体重秤、ScanWatch、Sleep Analyzer)的家庭用户
  • 希望自建健康数据看板、拒绝云服务商收集敏感数据的隐私意识用户
  • 熟悉命令行操作、具备基础 Python 环境配置能力的技术用户
  • 需要追踪多家庭成员(老人、儿童)健康指标变化的照护者

常规风险

1. OAuth Token 泄露风险:Token 文件若被恶意程序读取,可访问用户 Withings 数据。建议定期检查 ~/.openclaw/withings-family/ 目录权限。
2. 供应链攻击:个人开发者账号若被入侵,代码仓库可能被植入恶意逻辑。建议锁定特定版本或 fork 后自行维护。

3. 数据传输中间人:虽使用 TLS 1.2+,但需确保证书验证未被禁用,避免代理环境劫持。

4. 健康数据本地残留:查询结果输出至 stdout/日志,需注意终端历史记录清理,防止敏感信息泄露。

5. API 变更兼容性:Withings API 接口升级可能导致 Skill 失效,需关注上游更新。

withings-family 内容

scripts文件夹
手动下载zip · 9.9 kB
withings_oauth_local.pytext/plain
请选择文件