返回顶部
w

whoopWHOOP数据获取

WHOOP Central - OAuth + scripts to fetch WHOOP data (sleep, recovery, strain, workouts). Use when user asks about their sleep, recovery score, HRV, strain, or workout data.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.2
安全检测
已通过
1,818
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

whoop

技能名称: whoop

详细描述:

WHOOP Central

通过v2 API访问WHOOP的睡眠、恢复、运动负荷和锻炼数据。

快速命令

bash

1) 一次性设置(写入 ~/.clawdbot/whoop/credentials.json)


node src/setup.js

2) 推荐:通过Postman获取令牌(参见认证部分),然后验证

node src/verify.js node src/verify.js --refresh

快速概览(包含最近一次锻炼)

node src/today.js

每日摘要(所有指标)

node src/summary.js

单项指标

node src/recovery.js node src/sleep.js node src/strain.js node src/workouts.js

批量导入到 ~/clawd/health/logs/whoop/*

node src/import-historical.js

可用数据

指标数据点
恢复评分(0-100%)、HRV、静息心率、血氧饱和度、皮肤温度
睡眠
时长、阶段(REM/深睡/浅睡)、效率、表现 | | 运动负荷 | 每日负荷(0-21)、卡路里、平均/最大心率 | | 锻炼 | 活动类型、时长、负荷、卡路里、心率 |

恢复评分指南

  • - 💚 67-100% 绿色 - 已准备好表现
  • 💛 34-66% 黄色 - 中等准备状态
  • ❤️ 0-33% 红色 - 专注于恢复

设置

0. 前提条件

  • - Node.js 18+(本仓库使用ESM)
  • openssl(仅在通过https://localhost使用可选的auth.js流程时需要;Postman认证不需要)

1. 创建WHOOP开发者应用

  1. 1. 访问 https://developer.whoop.com/
  2. 使用您的WHOOP账户登录
  3. 创建一个新应用
  4. 添加以下重定向URI(精确匹配;末尾无多余斜杠):
- Postman浏览器回调(推荐认证路径):

https://oauth.pstmn.io/v1/browser-callback

- 可选本地回调(仅由auth.js使用):

https://localhost:3000/callback

您可以同时注册这两个URI。

  1. 5. 复制客户端ID和客户端密钥

团队说明:此技能附带任何客户端凭据。每个用户可以创建自己的WHOOP应用,
或者(如果互相信任)一个团队可以共享一个应用的clientid/clientsecret,并让多个WHOOP
账户授权它。

2. 保存凭据(推荐:交互式)

运行:
bash
node src/setup.js

这将写入~/.clawdbot/whoop/credentials.json(如果粘贴令牌,还可选写入token.json)。

3. 认证(推荐:Postman)

对于多个账户,Postman是最可靠的引导方式,因为WHOOP可能会阻止类似浏览器的流量
访问OAuth端点(或根据标头表现出不同行为)。

Postman检查清单(不要跳过这些):

  • - WHOOP仪表板的重定向URI包括:

- https://oauth.pstmn.io/v1/browser-callback
  • - Postman OAuth设置:

- 范围包括offline(否则您将无法获得refresh_token)
- 客户端认证为在请求体中发送客户端凭据(clientsecretpost)

1) 在WHOOP仪表板中,确保您已注册Postman回调重定向URI:
text
https://oauth.pstmn.io/v1/browser-callback

2) 在Postman中:

  • - 创建一个环境并设置变量:

- ClientId = 您的WHOOP客户端ID
- ClientSecret = 您的WHOOP客户端密钥
  • - 打开WHOOP API集合(或任何请求),然后打开授权选项卡:

- 类型:OAuth 2.0
- 添加认证数据到:请求标头
- 授权类型:授权码
- 回调URL:勾选使用浏览器授权
- 认证URL:

https://api.prod.whoop.com/oauth/oauth2/auth

- 访问令牌URL:

https://api.prod.whoop.com/oauth/oauth2/token

- 客户端ID:{{ClientId}}
- 客户端密钥:{{ClientSecret}}
- 范围(空格分隔):包括offline以及您需要的任何读取范围,例如:

offline read:profile read:sleep read:recovery read:workout read:cycles read:body_measurement

- 状态:任意8个以上字符(例如loomingState)
- 客户端认证:在请求体中发送客户端凭据

3) 点击获取新的访问令牌,登录WHOOP,然后点击授权。

4) 在Postman的管理访问令牌模态框中:

  • - 点击使用令牌(以便请求正常工作)
  • 重要:复制并保存以下两者:

- access_token
- refresh_token
Postman通常不会为您保留刷新令牌。

5) 将令牌保存到~/.clawdbot/whoop/token.json:

  • - 使用token.example.json作为模板
  • 设置:

- obtained_at 为当前时间的毫秒数
- redirect_uri 为:

https://oauth.pstmn.io/v1/browser-callback

6) 验证(并测试刷新):
bash
node src/verify.js
node src/verify.js --refresh

4. 可选:通过auth.js认证(在某些账户上可能失败)

如果您更喜欢完全本地的OAuth循环(且WHOOP允许),您可以使用auth.js。

前提条件:在WHOOP仪表板中添加此重定向URI:
text
https://localhost:3000/callback

运行:
bash
WHOOPREDIRECTURI=https://localhost:3000/callback node src/auth.js

如果需要从手机/远程设备执行:
bash
WHOOPREDIRECTURI=https://localhost:3000/callback node src/auth.js --manual

注意:对于本地主机HTTPS,脚本会生成自签名证书,您的浏览器将显示TLS警告。
您必须继续通过警告,以便重定向能够完成。

4. 验证是否正常工作

bash
node src/verify.js
node src/summary.js

故障排除

浏览器在登录页面之前显示NotAuthorizedException

这是WHOOP端对浏览器用户代理访问api.prod.whoop.com OAuth端点的阻止。
  • - 使用更新的node src/auth.js,它会引导登录URL并将您的浏览器直接发送到id.whoop.com。
  • 如果仍然看到此错误,请尝试node src/auth.js --manual并打开打印的URL。

redirect_uri not whitelisted(重定向URI未列入白名单)

  1. 1. 访问 https://developer.whoop.com/
  2. 编辑您的应用
  3. 确保此精确URI在重定向URI中:

https://oauth.pstmn.io/v1/browser-callback

如果您在本地使用auth.js,也请添加:

https://localhost:3000/callback

  1. 4. 保存并重试

令牌过期

令牌按需自动刷新(无需cron)。如果问题持续存在: bash rm ~/.clawdbot/whoop/token.json node src/auth.js

Authorization was not valid(授权无效)

这通常意味着您的访问令牌已过期/失效(如果您在其他地方重新认证或刷新令牌,这很常见;WHOOP刷新令牌会轮换)。
  • - 重新运行node src/auth.js,或
  • 将最新的accesstoken + refreshtoken从Postman复制到~/.clawdbot/whoop/token.json并更新obtained_at。

从手机/远程设备认证

使用手动模式: bash node src/auth.js --manual

在任何设备上打开URL,授权,然后从回调URL复制代码。

error=request_forbidden / The request is not allowed(请求不允许)

这是WHOOP在登录/同意后拒绝授权请求。常见原因:
  • - 重定向URI策略(WHOOP文档只提到https://或whoop://重定向URI)
  • 应用/账户限制(会员/审批/测试用户限制)
  • 范围限制(尝试请求更少的范围)

如果您怀疑是重定向URI策略,请使用HTTPS隧道:
bash

1) 获取一个转发到localhost:3000的公共HTTPS URL(示例)


ngrok http 3000

#

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 whoop-central-1776380661 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 whoop-central-1776380661 技能

通过命令行安装

skillhub install whoop-central-1776380661

下载

⬇ 下载 whoop v1.0.2(免费)

文件大小: 24.54 KB | 发布时间: 2026-4-17 15:30

v1.0.2 最新 2026-4-17 15:30
Postman-first OAuth docs; add setup/verify/today; JSONL+time filters; publish-safe token storage.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部