用途
该技能用于与用户的 Withings 账户交互,从 Withings 设备(智能体重秤、睡眠分析仪、活动追踪器等)获取全面的健康指标。
何时使用
当用户出现以下情况时使用此技能:
- 询问体重或体重历史
- 想查看身体成分(脂肪百分比、肌肉量、骨骼量、水分)
- 请求每日活动数据(步数、距离、消耗卡路里)
- 询问睡眠数据(时长、质量、深睡、REM)
- 提及 "Withings" 或任何 Withings 设备(Body+、Sleep Analyzer、ScanWatch 等)
- 想追踪一段时间内的健康进展
设置:创建 Withings 开发者应用
使用此技能前,需要创建一个免费的 Withings 开发者应用以获取 API 凭据。
第 1 步:创建 Withings 开发者账户
- 前往 Withings 开发者门户
- 点击 Sign Up,或如果已有 Withings 账户则点击 Log In
- 接受开发者服务条款
第 2 步:创建应用
- 导航至 My Apps → Create an Application
- 填写应用详情:
- Application Name:选择一个名称(例如 "My Clawdbot Health")
- Description:用例的简要描述
- Contact Email:你的电子邮件地址
- Callback URL:http://localhost:8080(OAuth 必需)
- Application Type:选择 "Personal Use" 或适当类型
- 提交应用
第 3 步:获取凭据
应用创建后:
- 前往 My Apps 并选择你的应用
- 你将找到:
- Client ID → 设置为 WITHINGS_CLIENT_ID 环境变量
- Client Secret → 设置为 WITHINGS_CLIENT_SECRET 环境变量
第 4 步:配置环境变量
添加到你的 Clawdbot 环境:
export WITHINGS_CLIENT_ID="your_client_id_here" export WITHINGS_CLIENT_SECRET="your_client_secret_here"
或在技能目录中创建 .env 文件(该文件会被 git 忽略):
WITHINGS_CLIENT_ID=your_client_id_here WITHINGS_CLIENT_SECRET=your_client_secret_here
配置
该技能使用位于 {baseDir} 中的 wrapper.js 脚本。
在任何数据检索之前,检查用户是否已认证。如果错误信息提到 "No token found",引导用户完成初始认证流程。
可用命令
1. 认证
首次设置——生成 OAuth URL:
node {baseDir}/wrapper.js auth
用户访问该 URL 并获取授权码后:
node {baseDir}/wrapper.js auth YOUR_CODE_HERE
2. 获取体重
检索最新体重测量值:
node {baseDir}/wrapper.js weight
返回最近 5 条体重记录,JSON 格式。
示例输出:
[ { "date": "2026-01-17T08:30:00.000Z", "weight": "75.40 kg" }, { "date": "2026-01-16T08:15:00.000Z", "weight": "75.65 kg" } ]
3. 获取身体成分
检索全面的身体指标(脂肪、肌肉、骨骼、水分、BMI):
node {baseDir}/wrapper.js body
返回最近 5 条身体成分测量值。
示例输出:
[ { "date": "2026-01-17T08:30:00.000Z", "weight": "75.40 kg", "fat_percent": "18.5%", "fat_mass": "13.95 kg", "muscle_mass": "35.20 kg", "bone_mass": "3.10 kg", "hydration": "55.2%" } ]
4. 获取活动
检索每日活动数据(步数、距离、卡路里):
node {baseDir}/wrapper.js activity
可选指定天数(默认:7):
node {baseDir}/wrapper.js activity 30
示例输出:
[ { "date": "2026-01-17", "steps": 8542, "distance": "6.23 km", "calories": 2150, "active_calories": 450, "soft_activity": "45 min", "moderate_activity": "22 min", "intense_activity": "8 min" } ]
5. 获取睡眠
检索睡眠数据与质量:
node {baseDir}/wrapper.js sleep
可选指定天数(默认:7):
node {baseDir}/wrapper.js sleep 14
示例输出:
[ { "date": "2026-01-17", "start": "23:15", "end": "07:30", "duration": "8h 15min", "deep_sleep": "1h 45min", "light_sleep": "4h 30min", "rem_sleep": "1h 30min", "awake": "30min", "sleep_score": 82 } ]
错误处理
常见错误及解决方法:
| 错误 | 原因 | 解决方案 |
|---|---|---|
| "No token found" | 首次使用,未认证 | 运行 node wrapper.js auth 并遵循 OAuth 流程 |
| "Failed to refresh token" | Token 过期且刷新失败 | 使用 node wrapper.js auth 重新认证 |
| "API Error Status: 401" | 凭据无效或过期 | 检查 CLIENT_ID 和 CLIENT_SECRET,重新认证 |
| "API Error Status: 503" | Withings API 暂时不可用 | 稍后等待并重试 |
| 数据为空 | 请求时间段内无测量数据 | 用户需要同步其 Withings 设备 |
说明
- Token 过期时会自动刷新
- 使用的 Withings API 权限范围:user.metrics、user.activity
- 数据可用性取决于用户拥有的 Withings 设备
- 某些指标(如身体成分)需要兼容的智能体重秤