我的案例

一、月底核考勤,数据其实早在钉钉里

每到月底,行政都要做同一件事:把钉钉的打卡记录导成表,再对着请假单、加班单一条条核。核对的过程不难,难的是重复——上个月核过的规则,这个月还得从头来一遍。

钉钉里并不缺数据,缺的是一条把它自动送进自己系统的通道。勤哲 Excel 服务器从 19.1.11 起提供 WebAPI 能力,可以直接调用外部接口取数,打卡记录就是最常见的用法之一。

下面这条流程是完整跑通过的:在钉钉建应用换凭证,把接口写进勤哲,再用表间公式把数据拉进模板。全程不写代码,需要的是对方文档、勤哲的配置,以及一张接数的表。

二、先备好两样东西:版本与账号

第一样是版本。勤哲系统套餐需为套餐 7,小版本更新到 19.1.11 或更新,低版本里找不到 WebAPI 入口,后面的步骤无从谈起。

第二样是账号。要能登录钉钉开放平台,并且有权限创建企业内部应用——查看 AppKey、重置 AppSecret 这些动作通常只有管理员能做。

再准备一个接口调试工具会更省事。钉钉的文档更新往往慢于接口实际返回,先用工具打一次,看清真实返回的字段,再去填勤哲里的返回参数,比反复试错快得多。

三、拿到 access_token:先建应用,再换凭证

钉钉的每次接口调用都要带一个 access_token,它是调用者的临时通行证。要拿到它,得先有一个企业内部应用作为身份。

在开放平台创建应用后,应用详情里能看到 AppKey 与 AppSecret。前者是身份编号,后者相当于密码,只应保存在服务端,不要写进任何会发给别人的表格里。

钉钉开放平台创建企业内部应用的入口
图1 在钉钉开放平台创建企业内部应用
应用详情页的凭证与密钥区域
图2 应用详情里查看 AppSecret
同时显示 AppKey 与 AppSecret 的界面
图3 AppKey 与 AppSecret 成对出现,后者需保密

四、把接口写进勤哲:WebAPI 的四组参数

回到勤哲的设计界面,新增一个 WebAPI。要填的东西归成四组:接口地址、调用方法、请求参数、返回参数。地址只写到问号之前,后面的查询串交给参数表。

获取 token 的接口用 GET 方法。请求参数按钉钉文档填,参数名必须与文档完全一致,大小写不同也会认证失败。返回参数可以直接从文档复制粘贴,再按实际返回结构删掉多余的层级。

在勤哲设计界面新增 WebAPI 并填写接口地址
图4 新增 WebAPI,先填接口地址与调用方法
WebAPI 请求参数配置界面
图5 请求参数按文档逐项填写,名称不能改
WebAPI 返回参数配置界面
图6 返回参数从文档复制,保留实际用到的字段
WebAPI 定义完成后的参数集与成功条件
图7 参数集与成功条件设好,这个接口才算配置完成

配置好之后,用一张单独的模板去执行取 token 的公式,把结果存下来。token 有有效期,过期要重新取,所以这张表的作用是"存着最新的一份",供其他公式调用。

这张表要加两道保护:字段设成不可编辑,显示格式设成隐藏。token 一旦在界面上明文露出来,等于把接口钥匙交给了所有能打开这张表的人。

用 WebApiReader 表间公式执行并保存 access_token
图8 WebApiReader 执行后,token 落进模板并保存

五、取打卡数据:时间区间有个七天上限

取打卡记录前先读文档。钉钉的考勤接口和企业微信有一处明显不同:起止时间不需要换算成 Unix 时间戳,可以直接填日期时间;但两个时间之间的间隔不能超过七天。

这意味着按月一次取是不行的。做法是按周切片,让公式一次取七天,多跑几次;或者在模板里放一个起始日期,每次执行后自动往后推七天。

钉钉开放平台考勤打卡接口文档的参数说明
图9 打卡接口文档:起止时间与分页参数
接口文档中的请求示例与字段含义
图10 文档里的请求示例,可直接对照填写
接口文档中的返回结果结构
图11 返回结构决定后面要建哪些字段

接着新建第二个 WebAPI,专门取打卡数据。地址、方法、请求参数照文档填,access_token 作为参数之一传入,取的是上一节存下来的那一份。

新建打卡数据 WebAPI 并填写接口地址
图12 新建打卡 WebAPI,地址填到问号之前
打卡 WebAPI 的请求参数配置
图13 请求参数:时间区间、用户列表、分页
打卡 WebAPI 的调用方法与选项设置
图14 方法与编码等选项,按文档逐项确认
打卡 WebAPI 配置完成后的参数汇总
图15 参数填完,先保存再测试

返回参数这一步最容易踩坑。钉钉文档里写的字段和接口真实返回的字段偶尔不一致,照抄会解析失败。稳妥的做法是先用调试工具打一次,把真实返回的 JSON 复制进勤哲,让它自动识别。

打卡接口返回参数粘贴与解析界面
图16 粘贴真实返回结果,让系统解析出字段
调整后的返回参数列表与成功条件
图17 删掉用不上的层级,只留需要入库的字段

六、模板接住数据:WebApiReader 公式怎么配

数据取回来要有地方放。新建一张模板,字段按打卡记录设计:工号、姓名、打卡时间、打卡类型、考勤结果。字段名不必和接口一致,但类型要对得上。

模板页面上放几个参数格:起始日期、结束日期、用户 ID。这些格子的值会被公式引用,改一次就能换一个查询区间,不必每次进设计界面。

用于接收钉钉打卡数据的模板设计界面
图18 新建接数模板,字段与打卡记录一一对应
WebApiReader 表间公式的定义入口
图19 在表间公式里选择 WebApiReader
WebApiReader 公式中选择目标 WebAPI
图20 选定前面建好的打卡 WebAPI
WebApiReader 公式的参数映射设置
图21 把模板里的参数格映射到接口参数上
WebApiReader 公式的填充与保存设置
图22 设定填充方式,执行结果按行写入明细

七、点一次执行,看数据落进表里

公式配好,执行一次就能看到结果:选定区间内的打卡记录按行填进明细表,字段对齐,不需要人工再整理。录屏演示里完整的动作只有三步——打开模板、点执行、等几秒。

要留意接口的分页限制。钉钉某些接口一次只返回 50 个员工、50 条记录,人数多的时候需要多次提取,公式要按返回的总数循环,或者手工改区间再跑一次。

执行 WebApiReader 公式后打卡数据自动填入模板的录屏
图23 执行一次,打卡数据按行落进模板

八、同一套方法,换成企业微信也一样

把流程抽象出来,其实是三步:读对方文档、在勤哲建 WebAPI、在模板里用表间公式取数或回写。钉钉只是其中一种,企业微信的打卡接口走的是同一套逻辑,差别在时间戳格式和调用方法。

再往外扩,金数据、问卷星、提供 API 的 ERP 系统,都能按这个套路接进来。会配置一次,后面每接一个系统都省一半时间。

真正的门槛不在技术,而在字段口径。接口返回的"打卡结果"和人事口径里的"出勤"往往不是一回事,这层换算要写在表间公式里,写清楚了,取回来的数才能直接用。

欢迎光临

游客,您好!

登录后享受更多精彩内容

最新主题

开始您的数字化转型之旅

免费下载试用,一周上手,一个月见效,万家企业的共同选择

Archiver| 手机版| Excel服务器APP应用之家

( 京ICP备17007816 )

联系客服 下载试用 勤哲社区 返回顶部