介绍
# Oura Ring CLI Skill
## 描述
该工具允许通过命令行界面从 Oura Ring API (V2) 获取健康和生物识别数据。使用它来回答有关用户睡眠、活动、准备度和生理统计数据的问题。
代码库:[https://github.com/ruhrpotter/oura-cli](https://github.com/ruhrpotter/oura-cli)
## 安装
### 1. 构建 CLI ```bash cd ~ git clone https://github.com/ruhrpotter/oura-cli.git cd oura-cli go build -o oura ./cmd/oura ```
### 2. 创建 Oura OAuth 应用 1. 前往 [Oura 开发者门户](https://cloud.ouraring.com/oauth/developer) 2. 创建一个新应用程序 3. 将重定向 URI (Redirect URI) 设置为:`http://localhost:8080/callback` 4. 记下您的 **Client ID** 和 **Client Secret**
### 3. 认证 ```bash export OURA_CLIENT_ID="your_client_id" export OURA_CLIENT_SECRET="your_client_secret" ./oura auth login ```
浏览器将打开以进行 OAuth 授权。令牌存储在 `~/.config/oura-cli/config.json` 中。
## 先决条件
CLI 必须已通过身份验证。如果命令因身份验证错误而失败,请通知用户运行 `./oura auth login`。
## 语法
`./oura get <category> [flags]`
## 类别
- `personal`:用户个人资料(年龄、体重、身高、电子邮件)。 - `sleep`:每日睡眠评分和效率。 - `activity`:每日活动评分、步数和运动量。 - `readiness`:表示恢复情况的每日准备度评分。 - `heartrate`:时间序列心率数据。 - `workout`:详细的锻炼会话。 - `spo2`:血氧饱和度水平。 - `sleep-details`:详细的睡眠会话,包括睡眠图。 - `sessions`:活动会话(如小睡、休息)。 - `sleep-times`:最佳就寝时间指导。 - `stress`:每日压力水平。 - `resilience`:每日心理韧性评分和恢复情况。 - `cv-age`:心血管年龄估算。 - `vo2-max`:最大摄氧量 (VO2 Max) 测量值。 - `ring-config`:指环硬件配置(颜色、尺寸等)。 - `rest-mode`:休息模式时段。 - `tags`:增强标签(笔记、生活方式选择)。
## 参数
- `--start <YYYY-MM-DD>`:对于大多数时间序列数据是必需的。范围的开始日期。 - `--end <YYYY-MM-DD>`:可选。范围的结束日期。如果省略,根据上下文,它可能默认为开始日期或返回单日数据。
## 代理指令
1. **日期解析**:您**必须**根据当前操作日期,将所有相对日期术语(例如“今天”、“昨天”、“上周”、“本月”)解析为绝对的 `YYYY-MM-DD` 字符串格式。 2. **日期范围**: - 对于“今天”:将 `--start` 设置为今天的日期。 - 对于“昨天”:将 `--start` 设置为昨天的日期。 - 对于“过去 7 天”:将 `--start` 设置为 7 天前,将 `--end` 设置为今天。 3. **路径**:除非用户另有说明,否则假定二进制文件是当前工作目录中的 `./oura`。 4. **输出**:CLI 返回 JSON。解析 JSON `data` 数组以生成自然语言响应。
## 示例
**用户请求**:“我昨晚睡得怎么样?” **上下文**:今天是 2024-03-15。“昨晚”通常指今天早上结束的睡眠会话,或者根据 Oura 的日期记录方式指前一天的数据(Oura 按睡眠结束的早晨来记录日期)。 **推理**:从 14 日晚到 15 日晚的睡眠记录为 `2024-03-15`。 **命令**: ```bash ./oura get sleep --start 2024-03-15 ```
**用户请求**:“我今天的准备度分数是多少?” **上下文**:今天是 2024-03-15。 **命令**: ```bash ./oura get readiness --start 2024-03-15 ```
**用户请求**:“显示我在 2024 年 1 月第一周的心率。” **命令**: ```bash ./oura get heartrate --start 2024-01-01 --end 2024-01-07 ```
**用户请求**:“我是谁?” **命令**: ```bash ./oura get personal ```