基于OAuth的Garmin健身数据同步工具,每5分钟自动拉取步数、心率、睡眠等健康指标至本地,数据不上云,隐私可控。
说明:
## 核心用法
Garmin Connect Skill 是一款面向 Clawdbot 用户的健身数据同步工具,通过 OAuth 认证接入 Garmin Connect 平台,实现步数、心率、卡路里、睡眠质量、运动记录等全维度健康数据的自动化采集。用户仅需执行一次 `garmin-auth.py` 完成 OAuth 授权,系统即生成本地会话文件,后续通过 cron 定时任务每 5 分钟自动同步最新数据至本地缓存,供 Clawdbot 随时调用展示。
## 显著优点
**隐私优先的架构设计**:所有数据仅存储于本地 `~/.clawdbot/.garmin-cache.json`,不经过第三方服务器,杜绝云端泄露风险。**OAuth 安全认证**:采用 garth 库实现标准 OAuth 流程,不保存用户明文密码,会话令牌本地加密存储。**实时性与完整性兼顾**:5 分钟高频同步确保数据新鲜度,覆盖日常活动、睡眠分期、运动详情三大核心模块。**低耦合易集成**:提供 `format_all()()` 和 `get_as_dict()()` 两种数据接口,Clawdbot 可无缝嵌入对话场景。**多用户支持**:通过独立的会话文件路径实现家庭或团队多账号管理。
## 潜在缺点与局限性
**硬编码路径问题**:部分脚本存在 `/home/mamotec//` 等开发者本地路径硬编码,用户需手动修改适配自身环境。**第三方库依赖风险**:核心功能依赖 `garminconnect` 和 `garth` 两个非官方库,若作者停止维护或引入漏洞,将直接影响 skill 可用性。**无输入验证机制**:认证脚本直接接收命令行邮箱密码,缺乏格式校验,误操作可能导致认证失败或日志残留敏感信息。**2FA 兼容性差**:官方建议禁用双因素认证或使用应用专用密码,对安全敏感用户不够友好。**Garmin 平台依赖**:数据同步受限于 Garmin 服务器状态,API 限流或变更可能导致服务中断。
## 适合的目标群体
**健康管理重度用户**:需持续追踪运动、睡眠数据以优化生活方式的健身爱好者。**量化自我实践者**:希望通过 Clawdbot 实现自然语言查询健康数据的极客用户。**隐私敏感型用户**:拒绝将健康数据上传至第三方云平台,坚持本地优先存储理念的人群。**Clawdbot 生态用户**:已部署 Clawdbot 且希望扩展其功能至健康领域的现有用户。**小型团队/家庭场景**:需要为多成员统一管理健身数据的管理员。
## 使用风险
**会话令牌泄露风险**:`~/.garth/session.json` 包含有效 OAuth 令牌,若文件权限设置不当(建议 600)或被恶意程序读取,可导致 Garmin 账号被冒用。**依赖项供应链风险**:第三方库更新可能引入破坏性变更或安全漏洞,需建立定期更新机制。**cron 任务堆积风险**:网络延迟或 Garmin 服务异常时,30 秒超时机制虽可防止挂起,但频繁失败可能导致日志膨胀。**数据时效性局限**:5 分钟同步间隔意味着数据非真正实时,高强度训练场景下存在延迟。**硬编码配置维护成本**:路径未参数化导致升级或迁移时需人工干预,增加运维复杂度。








