withings-family

⚖️ Withings 家庭健康数据管家

🥥52总安装量 18评分人数 24
100% 的用户推荐

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

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 代码安全规范:通过 BSS A 级认证,无 eval/exec/system 等危险函数,仅依赖 Python 标准库
  • ✅ 数据本地保护:OAuth Token 存储于用户本地目录,文件权限 600(仅所有者可读写),通信全程 HTTPS 加密
  • ✅ 输入验证完善:User ID 严格正则校验(仅允许字母数字及 ._-),有效防止路径遍历与注入攻击
  • ✅ OAuth 安全机制:使用随机 State 参数防御 CSRF,本地回调服务器限定 localhost,不暴露公网接口
  • ⚠️ 凭据管理责任:需用户自行申请并配置 Withings API 凭据(Client ID/Secret),建议通过环境变量而非硬编码方式配置

使用说明

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 内容

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