garmin-connect

本地优先的健身数据管家

🥥8总安装量 2评分人数 1
100% 的用户推荐

基于OAuth的Garmin健身数据同步工具,每5分钟自动拉取步数、心率、睡眠等健康指标至本地,数据不上云,隐私可控。

B

存在边界风险,建议在隔离环境中验证

  • 来自可信组织或认证账号,需要结合权限范围判断
  • ✅ OAuth 认证机制:采用标准 OAuth 流程,不存储用户明文密码,会话令牌本地加密保存
  • ✅ 数据本地存储:所有健身数据仅缓存于用户主目录,不上传至第三方服务器
  • ✅ 最小权限原则:仅读取健身相关数据(步数、心率、睡眠),无写入或删除权限
  • ⚠️ 硬编码路径风险:多处脚本包含开发者本地绝对路径,需用户手动修改适配
  • ⚠️ 第三方库依赖:核心功能依赖非官方 garminconnect/garth 库,需持续信任其安全性
  • ⚠️ 命令行参数暴露:邮箱密码通过命令行直接传递,可能被系统日志或进程列表记录

使用说明

核心用法

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// 等开发者本地路径硬编码,用户需手动修改适配自身环境。第三方库依赖风险:核心功能依赖 garminconnectgarth 两个非官方库,若作者停止维护或引入漏洞,将直接影响 skill 可用性。无输入验证机制:认证脚本直接接收命令行邮箱密码,缺乏格式校验,误操作可能导致认证失败或日志残留敏感信息。2FA 兼容性差:官方建议禁用双因素认证或使用应用专用密码,对安全敏感用户不够友好。Garmin 平台依赖:数据同步受限于 Garmin 服务器状态,API 限流或变更可能导致服务中断。

适合的目标群体

健康管理重度用户:需持续追踪运动、睡眠数据以优化生活方式的健身爱好者。量化自我实践者:希望通过 Clawdbot 实现自然语言查询健康数据的极客用户。隐私敏感型用户:拒绝将健康数据上传至第三方云平台,坚持本地优先存储理念的人群。Clawdbot 生态用户:已部署 Clawdbot 且希望扩展其功能至健康领域的现有用户。小型团队/家庭场景:需要为多成员统一管理健身数据的管理员。

使用风险

会话令牌泄露风险~/.garth/session.json 包含有效 OAuth 令牌,若文件权限设置不当(建议 600)或被恶意程序读取,可导致 Garmin 账号被冒用。依赖项供应链风险:第三方库更新可能引入破坏性变更或安全漏洞,需建立定期更新机制。cron 任务堆积风险:网络延迟或 Garmin 服务异常时,30 秒超时机制虽可防止挂起,但频繁失败可能导致日志膨胀。数据时效性局限:5 分钟同步间隔意味着数据非真正实时,高强度训练场景下存在延迟。硬编码配置维护成本:路径未参数化导致升级或迁移时需人工干预,增加运维复杂度。

garmin-connect 内容

文件夹图标scripts文件夹
手动下载zip · 10.6 kB
garmin-auth-oauth.pytext/plain
请选择文件