办公神器!用闲置手机+AI轻松实现钉钉自动打卡
还在为每天掐点打卡烦恼?这套零成本自动化方案或许能帮你
每天上班最紧张的时刻是什么?对很多打工人来说,可能是早上9点前的钉钉打卡。错过一分钟,全勤奖泡汤。今天教大家用一台闲置安卓手机搭配AI工具,打造一套全自动钉钉打卡系统,让你多睡10分钟不再是奢望。
零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目
资源获取:关注公众号: 小坏说Java ,获取本文所有示例代码、配置模板及导出工具。
一、 为什么需要这套方案?
你可能听说过各种“虚拟定位”打卡方法,但大多数存在明显缺陷:
- 风险高:改定位属于作弊,钉钉后台有检测,公司发现可能面临处罚
- 不稳定:需要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
第三步:联网测试
零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目
资源获取:关注公众号: 小坏说Java ,获取本文所有示例代码、配置模板及导出工具。
- 同一网络:如果电脑和手机都在公司网络,直接可用
- 远程控制:如果电脑在家,需在公司路由器设置端口转发
- 测试验证:手动触发一次,观察手机是否自动完成打卡
四、 技术要点与避坑指南
确保稳定运行的关键
- 设备保活:关闭手机自动锁屏,设置永不休眠
- 网络稳定:给手机分配固定IP,避免地址变化
- 脚本优化:在打卡后增加“返回桌面”操作,节省电量
- 异常处理:脚本中加入重试机制,应对网络波动
钉钉版本适配问题
不同版本的钉钉界面可能不同,如果脚本找不到打卡按钮,可以:
- 使用Auto.js的“布局分析”功能查看当前界面元素
- 用
bounds()函数获取按钮坐标,改用坐标点击 - 在节假日、调休日关闭自动任务,避免误触发
零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目
资源获取:关注公众号: 小坏说Java ,获取本文所有示例代码、配置模板及导出工具。
最后提醒:技术虽好,但诚信为本。建议将此方案用于应急备用或合法合规的自动化场景。在享受科技便利的同时,也要遵守公司规章制度哦!
如果你在搭建过程中遇到问题,或有更好的改进想法,欢迎在评论区交流讨论。