当用户提到以下场景时使用此 skill:
本 skill 使用自定义 token 流程,与 OAuth2 类似但更简单:
获取 Token(调用 scripts/get-token.py)
bash
python scripts/get-token.py
这会向 OA 系统发送请求,用环境变量中的 EOFFICE_AGENT_ID、 EOFFICE_SECRET、 EOFFICE_USER 换取访问 token。
Token 自动管理
安装 skill 后,用户需要提供以下环境变量(在 OpenClaw 配置中设置):
环境变量必填说明示例EOFFICE_BASE_URL是OA 系统部署地址https://oa.example.com/server``EOFFICE_AGENT_ID是应用 Agent ID100001``EOFFICE_SECRET是应用密钥abc123def456...``EOFFICE_USER是用户标识(工号/账号/手机号)admin 或 18612345678
如何获取凭证:
Agent ID 和 SecretEOFFICE_USERbash
curl -X GET "$EOFFICE_BASE_URL/api/hrm/lists" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"page": 1, "limit": 10}'
bash
curl -X GET "$EOFFICE_BASE_URL/api/hrm/detail/{user_id}" \
-H "Authorization: Bearer {token}"
bash
curl -X POST "$EOFFICE_BASE_URL/api/hrm/add" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"user_accounts": "zhangsan",
"user_name": "张三",
"dept_id": 1,
"role_id": [1, 2],
"user_status": 1,
"allow_login": 1,
"wap_allow": 1,
"sex": 1
}'
bash
curl -X POST "$EOFFICE_BASE_URL/api/hrm/edit" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"user_id": "WV00000001",
"user_accounts": "zhangsan",
"user_name": "张三(已修改)",
"dept_id": 2,
"role_id": [1],
"user_status": 1,
"allow_login": 1,
"wap_allow": 1,
"sex": 1
}'
bash
curl -X POST "$EOFFICE_BASE_URL/api/hrm/delete/{user_id}" \
-H "Authorization: Bearer {token}"
bash
curl -X GET "$EOFFICE_BASE_URL/api/department/allTree" \
-H "Authorization: Bearer {token}"
bash
curl -X GET "$EOFFICE_BASE_URL/api/department/detail/{dept_id}" \
-H "Authorization: Bearer {token}"
text
GET /api/hrm/lists
Body: {"search": {"user_name": ["张", "like"]}}
text
GET /api/department/users/{dept_id}
text
GET /api/hrm/superior/{user_id}
text
GET /api/hrm/subordinate/{user_id}
所有 API 返回格式统一:
成功:
json
{
"status": 1,
"data": { ... }
}
失败:
json
{
"status": 0,
"errors": [
{"code": "0x000003", "message": "未知错误"}
]
}
错误码说明0x000003未知错误0x500001参数缺失0x500002应用不存在0x500003Token 无效或已过期0x500004语言环境无效0x500005用户不存在0x500006用户不在白名单内0x500007无账号人员不支持生成 Token
user_status 字段标识用户是否在职,离职用户通常 user_status 为特定值dept_id,可先调用部门列表 API 查询role_id 是数组,指定用户的权限角色详见 references/api.md