OpenClaw+Auto.js实战:用200行代码搭建企业级自动打卡系统

58 阅读4分钟

办公神器!用闲置手机+AI轻松实现钉钉自动打卡

还在为每天掐点打卡烦恼?这套零成本自动化方案或许能帮你

每天上班最紧张的时刻是什么?对很多打工人来说,可能是早上9点前的钉钉打卡。错过一分钟,全勤奖泡汤。今天教大家用一台闲置安卓手机搭配AI工具,打造一套全自动钉钉打卡系统,让你多睡10分钟不再是奢望。

零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目

资源获取:关注公众号: 小坏说Java ,获取本文所有示例代码、配置模板及导出工具。

一、 为什么需要这套方案?

你可能听说过各种“虚拟定位”打卡方法,但大多数存在明显缺陷:

  • 风险高:改定位属于作弊,钉钉后台有检测,公司发现可能面临处罚
  • 不稳定:需要Root手机,系统更新后容易失效
  • 操作复杂:每次需要手动开启,忘记就前功尽弃

而我们今天推荐的方案完全不同:

  • 物理点击:模拟人手在真实设备上操作,符合平台规则
  • 无需Root:普通安卓机就能用
  • 全自动:设置一次,长期有效
  • 零成本:利用旧手机,不花一分钱

二、 系统架构:大脑+手的完美配合

整个系统由两部分组成:

  1. 大脑(决策中心) :OpenClaw AI工具

    • 负责定时判断“现在是否需要打卡”
    • 只在工作日上班时间触发指令
    • 部署在你的电脑或服务器上
  2. 手(执行终端) :闲置安卓手机

    • 放在公司工位,连接公司Wi-Fi
    • 安装Auto.js脚本,等待指令
    • 收到指令后自动完成打卡操作

三、 手把手搭建教程

第一步:准备“手”端(安卓手机)

  1. 设备选择:任意安卓手机(建议Android 7.0以上),充满电放在工位

  2. 安装Auto.js:在手机应用商店搜索“Auto.js”或“AutoX.js”安装

  3. 开启权限

    • 进入设置 → 无障碍服务 → 开启Auto.js
    • 允许Auto.js悬浮窗、后台运行等所有权限
  4. 编写打卡脚本

    // 在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: "打卡成功"});
        }
      }
    });
    
  5. 启动服务:运行脚本,记录手机IP地址(在Wi-Fi设置中查看)

第二步:配置“大脑”端(OpenClaw)

  1. 安装OpenClaw:在电脑上安装OpenClaw(支持Windows/Mac/Linux)

  2. 设置定时任务

    # 设置工作日早上8:55自动触发
    openclaw cron add --schedule "55 8 * * 1-5"
    
  3. 配置打卡指令:让OpenClaw在触发时向手机发送指令

    # 替换为你手机的IP地址
    curl -X POST http://192.168.1.100:9317/dingtalk/punch
    

第三步:联网测试

零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目

资源获取:关注公众号: 小坏说Java ,获取本文所有示例代码、配置模板及导出工具。

  • 同一网络:如果电脑和手机都在公司网络,直接可用
  • 远程控制:如果电脑在家,需在公司路由器设置端口转发
  • 测试验证:手动触发一次,观察手机是否自动完成打卡

四、 技术要点与避坑指南

确保稳定运行的关键

  1. 设备保活:关闭手机自动锁屏,设置永不休眠
  2. 网络稳定:给手机分配固定IP,避免地址变化
  3. 脚本优化:在打卡后增加“返回桌面”操作,节省电量
  4. 异常处理:脚本中加入重试机制,应对网络波动

钉钉版本适配问题

不同版本的钉钉界面可能不同,如果脚本找不到打卡按钮,可以:

  • 使用Auto.js的“布局分析”功能查看当前界面元素
  • bounds()函数获取按钮坐标,改用坐标点击
  • 在节假日、调休日关闭自动任务,避免误触发

零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目

资源获取:关注公众号: 小坏说Java ,获取本文所有示例代码、配置模板及导出工具。

最后提醒:技术虽好,但诚信为本。建议将此方案用于应急备用合法合规的自动化场景。在享受科技便利的同时,也要遵守公司规章制度哦!

如果你在搭建过程中遇到问题,或有更好的改进想法,欢迎在评论区交流讨论。