介绍
此技能允许您与用户的 Withings 账户交互,以从 Withings 设备(智能体脂秤、睡眠监测仪、活动追踪器等)获取全面的健康指标。
## When to Use This Skill
当用户出现以下情况时使用此技能: - 询问其 **体重** 或体重历史 - 想要查看其 **身体成分**(体脂率、肌肉量、骨量、水分) - 请求其 **日常活动**(步数、距离、消耗卡路里) - 询问其 **睡眠数据**(时长、质量、深度睡眠、快速眼动期) - 提及 "Withings" 或任何 Withings 设备(Body+、Sleep Analyzer、ScanWatch 等) - 希望随着时间的推移跟踪其健康状况
## 设置:创建 Withings 开发者应用
在使用此技能之前,您需要创建一个免费的 Withings 开发者应用程序以获取您的 API 凭据。
### 第 1 步:创建 Withings 开发者账户
1. 前往 [Withings Developer Portal](https://developer.withings.com/) 2. 点击 **Sign Up** 或 **Log In**(如果您已有 Withings 账户) 3. 接受开发者服务条款
### 第 2 步:创建您的应用程序
1. 导航至 **My Apps** → **Create an Application** 2. 填写应用程序详细信息: - **Application Name**:选择一个名称(例如 "My Clawdbot Health") - **Description**:简述您的用例 - **Contact Email**:您的电子邮件地址 - **Callback URL**:`http://localhost:8080`(OAuth 所需) - **Application Type**:选择 "Personal Use" 或合适的类型 3. 提交应用程序
### 第 3 步:获取您的凭据
应用程序创建完成后: 1. 前往 **My Apps** 并选择您的应用程序 2. 您将找到: - **Client ID** → 设置为 `WITHINGS_CLIENT_ID` 环境变量 - **Client Secret** → 设置为 `WITHINGS_CLIENT_SECRET` 环境变量
### 第 4 步:配置环境变量
将这些添加到您的 Clawdbot 环境中: ```bash 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: ```bash node {baseDir}/wrapper.js auth ```
用户访问 URL 并获取授权代码后: ```bash node {baseDir}/wrapper.js auth YOUR_CODE_HERE ```
### 2. 获取体重
检索最新的体重测量数据: ```bash node {baseDir}/wrapper.js weight ```
以 JSON 格式返回最近的 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): ```bash node {baseDir}/wrapper.js body ```
返回最近的 5 次身体成分测量数据。
**示例输出:** ```json [ { "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. 获取活动数据
检索每日活动数据(步数、距离、卡路里): ```bash node {baseDir}/wrapper.js activity ```
(可选)指定天数(默认:7): ```bash node {baseDir}/wrapper.js activity 30 ```
**示例输出:** ```json [ { "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. 获取睡眠数据
检索睡眠数据和睡眠质量: ```bash node {baseDir}/wrapper.js sleep ```
(可选)指定天数(默认:7): ```bash node {baseDir}/wrapper.js sleep 14 ```
**示例输出:** ```json [ { "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 设备 - 某些指标(如身体成分)需要兼容的智能体脂秤