尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
影刀RPA 钉钉自动化完全指南:审批流程与数据提取实战
影刀RPA 钉钉自动化完全指南审批流程与数据提取实战作者林焱写在前面钉钉是很多中小企业的核心协作工具。影刀有两种方式操控钉钉一是通过钉钉开放平台API二是直接操控钉钉桌面客户端界面。这篇文章两种方式都讲明确告诉你什么时候用哪种。一、两种方式的区别方式适用场景优点缺点API方式发消息、读考勤、拉审批数据稳定、数据完整需要企业管理员开通权限界面自动化点击审批、回复消息无需API权限界面变动可能失效原则能用API就用APIAPI解决不了的才用界面操控。店群矩阵自动化突破运营极限二、钉钉API方式获取Access Tokenimportrequestsimportjsondefget_access_token(app_key,app_secret):urlhttps://oapi.dingtalk.com/gettokenparams{appkey:app_key,appsecret:app_secret}responserequests.get(url,paramsparams)dataresponse.json()ifdata.get(errcode)0:returndata[access_token]else:raiseException(f获取token失败{data})ACCESS_TOKENget_access_token(你的AppKey,你的AppSecret)发送群消息defsend_group_message(access_token,chat_id,content):向钉钉群发送文本消息urlfhttps://oapi.dingtalk.com/chat/send?access_token{access_token}payload{chatid:chat_id,msg:{msgtype:text,text:{content:content}}}![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f53dcbcf91794b0b8b8b1de1262c528b.png#pic_center)responserequests.post(url,jsonpayload)returnresponse.json()# 发送日报resultsend_group_message(ACCESS_TOKEN,chat123456789,今日销售日报\n总金额98,000元\n订单数156笔\n退款3笔)print(result)发送群机器人消息更简单不需要企业APP钉钉群机器人Webhook不需要任何权限申请defsend_robot_message(webhook_url,title,content):通过群机器人Webhook发送消息payload{msgtype:markdown,markdown:{title:title,text:f##{title}\n\n{content}}}responserequests.post(webhook_url,jsonpayload)returnresponse.json()# 日报发送WEBHOOKhttps://oapi.dingtalk.com/robot/send?access_token你的tokensend_robot_message(WEBHOOK, 每日数据报告,| 指标 | 数值 |\n|------|------|\n| 访客数 | 1,234 |\n| 订单数 | 56 |\n| 转化率 | 4.5% |)拉取审批记录defget_approval_instances(access_token,process_code,start_time,end_time): 获取指定审批流程的审批记录 process_code: 审批模板ID在钉钉后台流程模板里找 start_time / end_time: 毫秒时间戳 urlfhttps://oapi.dingtalk.com/topapi/processinstance/listids?access_token{access_token}payload{process_code:process_code,start_time:start_time,end_time:end_time,size:20,cursor:0![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d1670e82996745498752f344f3c35f3e.png#pic_center)}responserequests.post(url,jsonpayload)returnresponse.json()importtime# 最近7天的审批end_msint(time.time()*1000)start_msend_ms-7*24*3600*1000resultget_approval_instances(ACCESS_TOKEN,PROC-xxx,start_ms,end_ms)instance_idsresult.get(result,{}).get(list,[])获取审批详情并提取字段defget_approval_detail(access_token,process_instance_id):获取单个审批实例的详情urlfhttps://oapi.dingtalk.com/topapi/processinstance/get?access_token{access_token}payload{process_instance_id:process_instance_id}responserequests.post(url,jsonpayload)returnresponse.json()defextract_form_values(instance_detail):从审批详情中提取表单字段值form_values{}componentsinstance_detail.get(result,{}).get(form_component_values,[])forcomponentincomponents:namecomponent.get(name)valuecomponent.get(value)form_values[name]valuereturnform_values# 批量提取审批数据rows[]forinstance_idininstance_ids[:50]:# 每次最多处理50条detailget_approval_detail(ACCESS_TOKEN,instance_id)valuesextract_form_values(detail)# 获取申请人和审批时间process_infodetail.get(result,{})values[申请人]process_info.get(originator_name)values[提交时间]process_info.get(create_time)values[审批结果]process_info.get(status)rows.append(values)# 写入Excelimportopenpyxl wbopenpyxl.Workbook()wswb.activeifrows:ws.append(list(rows[0].keys()))forrowinrows:ws.append(list(row.values()))wb.save(审批数据导出.xlsx)print(f共导出{len(rows)}条审批记录)三、界面自动化方式处理API无法覆盖的场景当企业没有开通API权限或需要操作钉钉界面如手动点击审批按钮用界面自动化场景批量处理待审批事项importpyautoguiimporttimedefapprove_pending_items():处理钉钉桌面版的待审批列表# 点击钉钉工作tabwork_tabpyautogui.locateOnScreen(dingtalk_work_tab.png,confidence0.85)ifwork_tab:pyautogui.click(work_tab)time.sleep(1)# 点击待我审批pending_btnpyautogui.locateOnScreen(dingtalk_pending_approval.png,confidence0.85)ifpending_btn:pyautogui.click(pending_btn)time.sleep(1.5)# 逐个处理processed0max_items20# 每次最多处理20条whileprocessedmax_items:# 找第一个待审批itemitempyautogui.locateOnScreen(dingtalk_approval_item.png,confidence0.80)ifnotitem:print(没有更多待审批)breakpyautogui.click(item)time.sleep(2)# 截图保存审批内容timestamptime.strftime(%Y%m%d_%H%M%S)pyautogui.screenshot(fapproval_{timestamp}.png)# 点击同意按钮agree_btnpyautogui.locateOnScreen(dingtalk_agree_btn.png,confidence0.85)ifagree_btn:pyautogui.click(agree_btn)time.sleep(1)# 确认弹窗confirmpyautogui.locateOnScreen(dingtalk_confirm.png,confidence0.85)ifconfirm:pyautogui.click(confirm)time.sleep(1)processed1print(f已处理第{processed}个审批)else:print(未找到同意按钮跳过)pyautogui.press(escape)time.sleep(0.5)breakprint(f批量审批完成处理{processed}条)approve_pending_items()四、考勤数据自动汇总temu店群自动化报活动案例defget_attendance_data(access_token,user_ids,work_date):获取指定日期的考勤打卡记录urlfhttps://oapi.dingtalk.com/attendance/list?access_token{access_token}payload{workDateFrom:work_date,workDateTo:work_date,userIdList:user_ids[:50],# 每次最多50人offset:0,limit:50}responserequests.post(url,jsonpayload)returnresponse.json()# 获取全部员工列表defget_all_users(access_token,dept_id1):urlfhttps://oapi.dingtalk.com/user/listid?access_token{access_token}department_id{dept_id}responserequests.get(url)returnresponse.json().get(userlist,[])usersget_all_users(ACCESS_TOKEN)user_ids[u[userid]foruinusers]# 获取今天考勤importdatetime todaydatetime.date.today().strftime(%Y-%m-%d)attendance_records[]foriinrange(0,len(user_ids),50):batchuser_ids[i:i50]resultget_attendance_data(ACCESS_TOKEN,batch,today)recordsresult.get(recordresult,[])attendance_records.extend(records)# 汇总到Excelwbopenpyxl.Workbook()wswb.active ws.append([员工ID,姓名,打卡时间,打卡类型,打卡结果])forrecinattendance_records:ws.append([rec.get(userId),rec.get(recordId),rec.get(userCheckTime),rec.get(checkType),# OnDuty上班 OffDuty下班rec.get(timeResult)# Normal正常 Late迟到 Early早退])wb.save(f考勤汇总_{today}.xlsx)五、常见坑坑1钉钉API接口变动频繁钉钉从旧版API迁移到新版dingtalk.openapi旧接口陆续停用。建议查官方文档确认当前有效接口不要直接复制网上的老代码。坑2消息频率限制群机器人每分钟最多20条消息。批量发送要加delaytime.sleep(3)每条消息间隔3秒。坑3用户ID vs 手机号钉钉API大多数接口用userId但有时需要先用手机号换取userIdurlfhttps://oapi.dingtalk.com/user/get_by_mobile?access_token{token}mobile13800138000坑4界面自动化的图片素材需要提前截好界面操控的图片定位素材dingtalk_agree_btn.png等需要在目标机器上截取分辨率要匹配否则confidence再高也找不到。总结钉钉自动化的核心经验API能搞的用API不要费力去界面操控。API拿审批数据、考勤记录、员工信息都很稳定。界面操控只用于点击审批同意这类没有API支持的操作。署名林焱
RELATED

相关推荐

WatchMachineGo:LLM推理硬件监控可视化工具实战指南

WatchMachineGo:LLM推理硬件监控可视化工具实战指南

这次我们来看一个很有意思的工具——WatchMachineGo,这是一个专门用来可视化展示硬件在执行大语言模型推理过程的工具。对于做本地部署、性能调优或者想了解LLM推理背后硬件工作状态的人来说,这个工具能提供很直观的观察窗口。WatchMachineGo的核心价值在…

📅 2026/9/9 3:06:15
正规接地线品牌大盘点:这5家最靠谱!

正规接地线品牌大盘点:这5家最靠谱!

在电力安全领域,接地线是保障人员和设备安全的第一道防线。据统计,电力事故中因接地线质量不达标或使用不当导致的案例占比高达30%以上。但市面上的接地线品牌五花八门,价格从几十元到几百元不等,质量参差不齐,很多从业…

📅 2026/8/25 21:45:16
Claude中转站流式输出:聊天产品要看首字体验而不是总耗时

Claude中转站流式输出:聊天产品要看首字体验而不是总耗时

聊天产品的体验重点和批量任务不同。用户打开对话窗口后,最先感受到的是第一段内容什么时候出现,而不是完整回答最终用了多少秒。Claude中转站接入流式输出,可以让内容逐段展示,但也会带来前端监听、后端转发、异常中断和用户取消…

📅 2026/8/22 20:35:55
MORE NEWS

更多资讯

📰

Actual Budget CLI 完全指南:用 @actual-app/cli 在终端管理与查询预算数据

Actual Budget CLI 完全指南:用 actual-app/cli 在终端管理与查询预算数据 【免费下载链接】actual A local-first personal finance app 项目地址: https://gitcode.com/GitHub_Trending/ac/actual 本篇技术指南系统讲解 Actual Budget 官方命令行工具 actu…

📰

Android Soong 构建规则中的 Rust:从 rust_binary 到 rust_library 的完整指南(comprehensive-rust 实战)

Android Soong 构建规则中的 Rust:从 rust_binary 到 rust_library 的完整指南(comprehensive-rust 实战) 【免费下载链接】comprehensive-rust This is the Rust course used by the Android team at Google. It provides you the material …

📰

考研调剂公告怎么读?从长春工业大学样本看调剂全流程与避坑指南

每年二三月,考研初试成绩公布后的这段时间,很多学生的手机都会一刻不停刷着各类调剂信息。如果你恰好看到了“长春工业大学2025年硕士研究生招生调剂公告(一)”这样一条标题,第一反应可能是赶紧点进去找有没有自己的专…

📰

Java保险业务管理系统毕业设计:从技术选型到部署答辩全攻略

简介:基于Java的保险业务管理系统毕业设计完整资料包,面向高校计算机或软件工程专业学生,可用于毕业设计参考、课程项目实训或Java Web开发实践。压缩包约66.12MB,内容涵盖项目报告、答辩PPT、源代码、数据库脚本、界面截图及部署…

📰

双关节机械臂自适应模糊反演控制:建模、设计与MATLAB仿真

简介:双关节机械臂的自适应模糊反演控制Matlab仿真包,面向机器人控制与智能算法方向的本科、硕士阶段教研学习。资源围绕双关节机械臂的轨迹跟踪问题,完整实现了基于模糊系统的自适应反演控制方案,通过模糊逻辑逼近系统未知非线性…

📰

从零实现 C++ AI 大模型接入 SDK(一):项目介绍与整体架构

目录 前言 一、我们要做的不是“大模型”,而是“大模型应用” 二、项目最终能做到什么 三、项目整体架构 3.1 Web UI:用户真正操作的界面 3.2 ChatServer:把 SDK 变成 HTTP 服务 四、ChatSDK:整个项目真正的核心 五、SDK …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬