钉钉打卡接口可用,但需先抓包获取有效cookie和员工id;若启用面部/蓝牙等强校验则脚本失效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要在每天上班前用Python脚本自动向钉钉提交打卡数据,但不熟悉逆向工程、HTTP协议或模拟登录流程,想借助Kimi的代码生成能力快速产出可运行脚本。
确认钉钉打卡接口是否可用
打开钉钉网页版(https://oa.dingtalk.com),登录后进入考勤页面,按 F12 打开开发者工具 → 切换到 Network 选项卡 → 点击“打卡”按钮 → 在筛选栏输入 “checkin” 或 “attendance” → 找到状态码为 200 的 POST 请求 → 点击该请求 → 查看 Headers 中的 Request URL、Request Method 和 Cookie 字段 → 复制完整的 Cookie 值(含 dingtalk-sso-token、_ga、x-oss-security-token 等关键字段)。
这一步不可跳过:【若找不到带 checkin 字样的成功请求,说明当前账号启用了人脸/蓝牙/WiFi等强校验方式,Kimi生成的脚本将无法绕过】。
用Kimi生成基础打卡请求代码
在Kimi对话框中输入:“请生成一个Python脚本,使用requests库向钉钉考勤接口发送POST请求完成上班打卡。已知接口URL为 https://oapi.dingtalk.com/attendance/simple/checkin,需携带以下Headers:Content-Type: application/json;x-dingtalk-access-token: xxx;Cookie: [此处粘贴你刚复制的完整Cookie];Body为JSON格式,包含userId(你的员工ID)、checkType('Normal’表示上班)、sourceType(4)、lat(你所在城市中心纬度,如39.9042)、lng(经度,如116.4074)、userCheckTime(毫秒级时间戳)。”
点击发送后,Kimi会返回一段含 requests.post 调用的代码。检查生成代码中是否包含 json.dumps 封装 body、是否对 userCheckTime 调用 int(time.time() * 1000) 动态生成。
手动补全关键参数并调试
第一步:从钉钉个人资料页右键“查看网页源代码”,搜索 “userid” 或 “empId”,找到类似 "userid":"abcdef123456" 的字段,提取引号内字符串作为 userId 值。
第二步:将Kimi生成的代码中硬编码的 lat/lng 替换为你实际办公地点的高德坐标(可用高德地图PC端右键“在此处查找”→地址栏末尾数字即为坐标)。
第三步:运行脚本前,在代码开头添加 import time, json, requests,并确保 requests 已安装(pip install requests)。
第四步:首次运行时把 requests.post 的 verify 参数设为 False(避免SSL证书报错),并在响应后加 print(r.text),观察返回内容是否含 “result”:true 或 “msg”:“操作成功”。【如果返回 ‘无权限’ 或 ‘token无效’,说明 Cookie 已过期,需重新抓包获取】。
封装为定时可执行脚本
方法一:Windows任务计划程序
将脚本保存为 dd_auto_checkin.py → 右键“以管理员身份运行”一次验证成功 → 新建文本文档,写入 python D:\path\dd_auto_checkin.py → 另存为 run_checkin.bat → 打开任务计划程序 → 创建基本任务 → 触发器设为“每天上午8:45” → 操作设为“启动程序”,程序为 run_checkin.bat 的绝对路径。
方法二:macOS launchd
新建 ~/Library/LaunchAgents/com.dd.checkin.plist → 写入标准plist配置,其中 ProgramArguments 指向 /usr/bin/python3 和脚本路径 → 运行 launchctl load ~/Library/LaunchAgents/com.dd.checkin.plist → launchctl start com.dd.checkin。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











