名称: oura-ring
描述: 通过 Oura Cloud API V2 获取 Oura Ring 的每日准备度/睡眠数据及7天准备度趋势,并生成晨间准备度简报。
本技能提供了一个公开的参考实现,用于从 Oura V2 API (/v2/usercollection/*) 获取 每日准备度、睡眠 以及 7天准备度趋势 数据。
python3 skills/oura-ring/cli.py --format json --pretty readinesspython3 skills/oura-ring/cli.py --format json --pretty sleeppython3 skills/oura-ring/cli.py --format json --pretty trendspython3 skills/oura-ring/cli.py --format json --pretty resiliencepython3 skills/oura-ring/cli.py --format json --pretty stress
晨间简报 (格式化输出):
./skills/oura-ring/scripts/morning_brief.shmacOS/Homebrew 的 Python 通常会阻止全局 pip install (PEP 668),因此请使用虚拟环境:
python3 -m venv skills/oura-ring/.venv
source skills/oura-ring/.venv/bin/activate
python -m pip install -r skills/oura-ring/requirements.txt
.env 文件创建 skills/oura-ring/.env 文件:
cp skills/oura-ring/.env.example skills/oura-ring/.env
# 然后编辑 skills/oura-ring/.env 文件
CLI 工具会读取以下环境变量:
- OURA_TOKEN (必需)
- OURA_BASE_URL (可选;默认为 https://api.ouraring.com/v2/usercollection)
Oura V2 使用 OAuth2 承载令牌。
http://localhost:8080/callback)。CLIENT_ID、REDIRECT_URI 和 scope 参数):https://cloud.ouraring.com/oauth/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=readiness%20sleep
code=... 查询参数。curl -X POST https://api.ouraring.com/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d grant_type=authorization_code \
-d client_id=CLIENT_ID \
-d client_secret=CLIENT_SECRET \
-d redirect_uri=REDIRECT_URI \
-d code=AUTH_CODE
access_token 填入 skills/oura-ring/.env 文件,格式为 OURA_TOKEN=...。注意事项:
- 访问令牌可能会过期;您可能需要使用 refresh_token 来刷新令牌。
- 切勿将 .env 文件提交到版本控制系统。
python3 skills/oura-ring/cli.py --env-file skills/oura-ring/.env --format json --pretty readiness
python3 skills/oura-ring/cli.py --env-file skills/oura-ring/.env --format json --pretty sleep
python3 skills/oura-ring/cli.py --env-file skills/oura-ring/.env --format json --pretty trends
./skills/oura-ring/scripts/morning_brief.sh
自定义环境文件路径:
OURA_ENV_FILE=/path/to/.env ./skills/oura-ring/scripts/morning_brief.sh
使用模拟模式运行 (无需令牌):
OURA_MOCK=1 ./skills/oura-ring/scripts/morning_brief.sh
python3 skills/oura-ring/cli.py --mock readiness --format json
python3 skills/oura-ring/cli.py --mock sleep --format json
python3 skills/oura-ring/cli.py --mock trends --format json