名称: withings-health
描述: 从 Withings API 获取健康数据,包括体重、身体成分(脂肪、肌肉、骨骼、水分)、活动和睡眠。当用户询问其 Withings 数据、体重历史、身体指标、每日步数、睡眠质量或任何来自 Withings 设备的健康测量值时,请使用此技能。
版本: 1.1.0
主页: https://developer.withings.com/
元数据: {"clawdbot":{"emoji":"⚖️","requires":{"bins":["node"],"env":["WITHINGS_CLIENT_ID","WITHINGS_CLIENT_SECRET"]}}}
此技能允许您与用户的 Withings 账户交互,以获取来自 Withings 设备(智能秤、睡眠分析仪、活动追踪器等)的全面健康指标。
在以下情况使用此技能:
- 用户询问其体重或体重历史
- 用户想查看其身体成分(脂肪率、肌肉量、骨量、水合状态)
- 用户请求其日常活动数据(步数、距离、消耗卡路里)
- 用户询问其睡眠数据(时长、质量、深睡、快速眼动睡眠)
- 用户提及 "Withings" 或任何 Withings 设备(Body+、Sleep Analyzer、ScanWatch 等)
- 用户想追踪其随时间推移的健康进展
使用此技能前,您需要创建一个免费的 Withings 开发者应用以获取 API 凭证。
http://localhost:8080(OAuth 必需)应用创建后:
1. 进入 我的应用 并选择您的应用
2. 您将找到:
- 客户端 ID → 设置为环境变量 WITHINGS_CLIENT_ID
- 客户端密钥 → 设置为环境变量 WITHINGS_CLIENT_SECRET
将这些添加到您的 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 脚本。
在任何数据检索之前,请检查用户是否已认证。如果错误提示"未找到令牌",请引导用户完成初始认证流程。
首次设置 - 生成 OAuth URL:
node {baseDir}/wrapper.js auth
用户访问该 URL 并获得授权码后:
node {baseDir}/wrapper.js auth YOUR_CODE_HERE
检索最新的体重测量值:
node {baseDir}/wrapper.js weight
以 JSON 格式返回最近的 5 个体重记录。
示例输出:
[
{ "date": "2026-01-17T08:30:00.000Z", "weight": "75.40 kg" },
{ "date": "2026-01-16T08:15:00.000Z", "weight": "75.65 kg" }
]
检索全面的身体指标(脂肪、肌肉、骨骼、水分、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%"
}
]
检索日常活动数据(步数、距离、卡路里):
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"
}
]
检索睡眠数据和质量:
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
}
]
常见错误及解决方法:
| 错误 | 原因 | 解决方案 |
|---|---|---|
| "未找到令牌" | 首次使用,未认证 | 运行 node wrapper.js auth 并遵循 OAuth 流程 |
| "刷新令牌失败" | 令牌过期且刷新失败 | 使用 node wrapper.js auth 重新认证 |
| "API 错误状态:401" | 凭证无效或已过期 | 检查您的 CLIENT_ID 和 CLIENT_SECRET,重新认证 |
| "API 错误状态:503" | Withings API 暂时不可用 | 稍后重试 |
| 数据为空 | 请求时间段内无测量数据 | 用户需要同步其 Withings 设备 |
user.metrics, user.activity