OpenClaw+Auto.js实战:用200行代码搭建企业级自动打卡系统
·
办公神器!用闲置手机+AI轻松实现钉钉自动打卡
还在为每天掐点打卡烦恼?这套零成本自动化方案或许能帮你
每天上班最紧张的时刻是什么?对很多打工人来说,可能是早上9点前的钉钉打卡。错过一分钟,全勤奖泡汤。今天教大家用一台闲置安卓手机搭配AI工具,打造一套全自动钉钉打卡系统,让你多睡10分钟不再是奢望。
一、 为什么需要这套方案?
你可能听说过各种“虚拟定位”打卡方法,但大多数存在明显缺陷:
- 风险高:改定位属于作弊,钉钉后台有检测,公司发现可能面临处罚
- 不稳定:需要Root手机,系统更新后容易失效
- 操作复杂:每次需要手动开启,忘记就前功尽弃
而我们今天推荐的方案完全不同:
- 物理点击:模拟人手在真实设备上操作,符合平台规则
- 无需Root:普通安卓机就能用
- 全自动:设置一次,长期有效
- 零成本:利用旧手机,不花一分钱
二、 系统架构:大脑+手的完美配合
整个系统由两部分组成:
- 大脑(决策中心):OpenClaw AI工具
- 负责定时判断“现在是否需要打卡”
- 只在工作日上班时间触发指令
- 部署在你的电脑或服务器上
- 手(执行终端):闲置安卓手机
- 放在公司工位,连接公司Wi-Fi
- 安装Auto.js脚本,等待指令
- 收到指令后自动完成打卡操作
三、 手把手搭建教程
第一步:准备“手”端(安卓手机)
- 设备选择:任意安卓手机(建议Android 7.0以上),充满电放在工位
- 安装Auto.js:在手机应用商店搜索“Auto.js”或“AutoX.js”安装
- 开启权限:
- 进入设置 → 无障碍服务 → 开启Auto.js
- 允许Auto.js悬浮窗、后台运行等所有权限
- 编写打卡脚本:
// 在Auto.js中新建脚本
let server = $web_server.create();
server.listen("/dingtalk/punch", (req, res) => {
if (req.method == "POST") {
// 唤醒屏幕
device.wakeUp();
sleep(1000);
// 打开钉钉
launchApp("钉钉");
sleep(5000);
// 点击打卡按钮
let btn = textContains("打卡").findOne(10000);
if (btn) {
btn.click();
res.send({success: true, msg: "打卡成功"});
}
}
});
- 启动服务:运行脚本,记录手机IP地址(在Wi-Fi设置中查看)
第二步:配置“大脑”端(OpenClaw)
- 安装OpenClaw:在电脑上安装OpenClaw(支持Windows/Mac/Linux)
- 设置定时任务:
# 设置工作日早上8:55自动触发
openclaw cron add --schedule "55 8 * * 1-5"
- 配置打卡指令:让OpenClaw在触发时向手机发送指令
# 替换为你手机的IP地址
curl -X POST http://192.168.1.100:9317/dingtalk/punch
第三步:联网测试
- 同一网络:如果电脑和手机都在公司网络,直接可用
- 远程控制:如果电脑在家,需在公司路由器设置端口转发
- 测试验证:手动触发一次,观察手机是否自动完成打卡
四、 技术要点与避坑指南
确保稳定运行的关键
- 设备保活:关闭手机自动锁屏,设置永不休眠
- 网络稳定:给手机分配固定IP,避免地址变化
- 脚本优化:在打卡后增加“返回桌面”操作,节省电量
- 异常处理:脚本中加入重试机制,应对网络波动
钉钉版本适配问题
不同版本的钉钉界面可能不同,如果脚本找不到打卡按钮,可以:
- 使用Auto.js的“布局分析”功能查看当前界面元素
- 用
bounds()函数获取按钮坐标,改用坐标点击 - 在节假日、调休日关闭自动任务,避免误触发
最后提醒:技术虽好,但诚信为本。建议将此方案用于应急备用或合法合规的自动化场景。在享受科技便利的同时,也要遵守公司规章制度哦!
如果你在搭建过程中遇到问题,或有更好的改进想法,欢迎在评论区交流讨论。
更多推荐



所有评论(0)