Keep2API
使用 scripts/sync.py 拉取 Keep 运动记录,并把结果追加写入工作区内的 memory/fitness_log.json。
账号配置
不要把真实手机号和密码写进 skill。
优先使用环境变量:
KEEP_MOBILEKEEP_PASSWORD
也支持本地配置文件:
- 路径:
~/.openclaw/fitness-tracker.json - 内容:
{
"mobile": "你的Keep手机号",
"password": "你的Keep密码"
}
- 登录接口:
POST https://api.gotokeep.com/v1.1/users/login - Header:
User-Agent: Keep/2.80.0 (iPhone; iOS 16.0) - 返回
data.token用于后续 Bearer 认证 - 建议使用次要账号,不要在共享环境里暴露主账号密码
本 skill 不在文档或代码中内置真实凭证。
数据保存
- 运动日志:工作区
memory/fitness_log.json - 本地凭证配置:
~/.openclaw/fitness-tracker.json
脚本
- 路径:
scripts/sync.py - 功能:
- 登录 Keep 获取 token
- 拉取
running/plank/all运动记录 - 按需过滤日期与数量
- 输出格式化汇报
- 追加写入
memory/fitness_log.json
命令参数
--type- 可选:
running、plank、all - 默认:
running
- 可选:
--limit- 整数,限制返回记录数量
- 默认:
10
--date- 可选,格式:
YYYY-MM-DD - 仅保留指定日期的记录
- 可选,格式:
用法示例
python3 scripts/sync.py
python3 scripts/sync.py --type running --limit 5
python3 scripts/sync.py --type plank --date 2026-03-18
python3 scripts/sync.py --type all --limit 20
核心 API
keep_login()- 请求
POST https://api.gotokeep.com/v1.1/users/login - 返回 token
- 请求
get_workout_records(token, workout_type="running", limit=10)- 请求
GET https://api.gotokeep.com/pd/v3/stats/detail?dateUnit=all&type={workout_type}&lastDate=0 - 返回标准化后的运动记录列表
- 请求
format_report(records)- 输出包含:日期 / 课程名 / 时长 / 卡路里 / 配速
sync_to_log(records)- 追加写入工作区
memory/fitness_log.json
- 追加写入工作区
数据字段说明
| 字段 | 说明 |
|---|---|
distance |
距离(米) |
kmDistance |
距离(公里) |
duration |
时长(秒) |
calorie |
卡路里(kcal) |
averagePace |
平均配速(秒/公里) |
averageSpeed |
平均速度(km/h) |
doneDate |
完成时间(UTC) |
输出格式
收到“同步运动 / 查跑步记录”时:
- 运行
scripts/sync.py - 读取标准输出并返回给用户
示例:
🏃 运动记录
1. 日期:2026-03-16
课程名:跑步
时长:29m00s
卡路里:254 kcal
配速:13'22"/km
可选扩展
如果调用方有自己的体重记录流程,可以把体重数据一并写入 memory/fitness_log.json,例如:
{
"weight": [
{"date": "2026-03-16", "kg": 60.5}
],
"runs": []
}
安全提示
- 不要提交
~/.openclaw/fitness-tracker.json - 不要在仓库、聊天记录或技能文档里粘贴真实密码
- 发布到 ClawHub 前,确认 skill 目录中不包含任何私人凭证文件
