Install
openclaw skills install dingtalk-attendance查询和分析钉钉考勤打卡数据。当用户提到打卡、考勤、迟到、早退、旷工、出勤率、谁没打卡、上班情况、DingTalk attendance 等关键词时触发此 skill。即使用户没有明确说"打卡",只要涉及员工到岗、缺勤、工时相关的问题,也应该使用这个 skill。
openclaw skills install dingtalk-attendance这个 skill 用于通过钉钉开放平台 API 查询员工的打卡记录,并对结果进行智能分析和汇总。
运行脚本前,检查以下三个环境变量是否已设置:
echo $DINGTALK_APPKEY
echo $DINGTALK_APPSECRET
echo $ADMIN_PHONE
如果任何一个为空,告知用户需要先配置:
查询钉钉打卡数据需要以下环境变量,请先设置:
DINGTALK_APPKEY— 钉钉企业内部应用的 AppKeyDINGTALK_APPSECRET— 钉钉企业内部应用的 AppSecretADMIN_PHONE— 管理员手机号(用于获取操作人 userId)你可以通过
export DINGTALK_APPKEY=xxx设置,或者加到.env/ shell 配置文件中。
确认三个变量都有值后再继续。
用户会用自然语言描述时间范围。你需要将其转换为脚本要求的格式:YYYY-MM-DD HH:MM:SS。
规则:
date 命令获取00:00:0023:59:59示例:
--start-time "2026-03-07 00:00:00" --end-time "2026-03-07 23:59:59"--start-time "2026-03-03 00:00:00" --end-time "2026-03-05 23:59:59"--start-time "2026-02-23 00:00:00" --end-time "2026-03-01 23:59:59"脚本路径:scripts/attendance_query.py,位于本 skill 所在项目的根目录下。
先确定项目根目录(包含 pyproject.toml 和 scripts/ 目录的那个),然后运行:
cd <项目根目录>
uv run python scripts/attendance_query.py --start-time "YYYY-MM-DD HH:MM:SS" --end-time "YYYY-MM-DD HH:MM:SS"
如果不确定项目根目录在哪,可以用 find ~ -name "attendance_query.py" -path "*/scripts/*" 2>/dev/null | head -3 来定位。
脚本会输出打卡异常的员工信息,格式如:
张三 打卡结果 迟到 出现 2 次
李四 打卡结果 旷工 出现 1 次
如果没有输出,说明该时间段内所有人打卡正常。
每次 API 查询的结果会自动保存到本地 SQLite 数据库,后续可以直接从本地读取。
脚本支持从本地数据库读取之前查询过的打卡记录,这样做对比分析时不需要重新调用钉钉 API。
uv run python scripts/attendance_query.py --list-history
输出示例:
日期 异常次数 最后查询时间
--------------------------------------------------
2026-03-03 40 2026-03-08 15:00:00
2026-03-06 36 2026-03-08 15:05:00
uv run python scripts/attendance_query.py --history --start-time "YYYY-MM-DD 00:00:00" --end-time "YYYY-MM-DD 23:59:59"
如果请求范围内有部分日期没有历史数据,脚本会输出警告(可能是从未查询过,也可能是当日全员正常)。
当用户要求查看或对比打卡数据时,按以下优先级选择查询方式:
--list-history 看看本地有哪些日期的数据--history 从本地读取--history 正常查询(会自动保存)拿到脚本输出后,对结果进行有价值的分析。用户真正关心的不是原始数据的罗列,而是"谁有问题、问题有多严重、需要我做什么"。
输出风格:简洁、结构化,用中文。适当使用表格让数据更直观。
用户可能要求对比不同时间段的打卡情况(比如"和上周比怎么样"、"最近一个月的趋势")。这时:
--list-history 查看本地已有哪些数据--history 读取,没有的先通过 API 查询分析可以包括: