钉钉考勤记录接口的获取与调用
(图片来源网络,侵删)
钉钉作为一款企业级的办公软件,提供了丰富的API接口供开发者使用,考勤记录接口是钉钉提供的一个重要功能,可以帮助企业更好地管理员工的考勤情况,本文将详细介绍如何获取和调用钉钉的考勤记录接口。
获取考勤记录接口
钉钉的考勤记录接口主要有两个:
1、获取员工考勤记录:这个接口可以获取指定日期范围内的员工考勤记录。
2、获取部门考勤统计:这个接口可以获取指定日期范围内的部门考勤统计信息。
1.1 获取员工考勤记录
要获取员工考勤记录,需要使用钉钉提供的getAttendanceRecords接口,该接口的请求参数如下:
| 参数名 | 类型 | 是否必填 | 描述 |
| start_time | String | 是 | 查询开始时间,格式为”YYYYMMDD HH:mm:ss” |
| end_time | String | 是 | 查询结束时间,格式为”YYYYMMDD HH:mm:ss” |
| employee_id | String | 是 | 员工ID |
| work_type | Integer | 否 | 工作类型,可选值为1(上班打卡)、2(下班打卡)、3(外出打卡)等 |
| checkin_type | Integer | 否 | 签到类型,可选值为1(人脸识别)、2(指纹识别)、3(手机打卡)等 |
| offset | Integer | 否 | 偏移量,用于分页查询,默认值为0,每页返回10条数据 |
| limit | Integer | 否 | 每页返回的数据条数,默认值为10,最大值为100 |
1.2 获取部门考勤统计
要获取部门考勤统计,需要使用钉钉提供的getDepartmentAttendanceStatistic接口,该接口的请求参数如下:
| 参数名 | 类型 | 是否必填 | 描述 |
| start_time | String | 是 | 查询开始时间,格式为”YYYYMMDD HH:mm:ss” |
| end_time | String | 是 | 查询结束时间,格式为”YYYYMMDD HH:mm:ss” |
| department_id | String | 是 | 部门ID |
| checkin_type | Integer | 否 | 签到类型,可选值为1(人脸识别)、2(指纹识别)、3(手机打卡)等 |
| offset | Integer | 否 | 偏移量,用于分页查询,默认值为0,每页返回10条数据 |
| limit | Integer | 否 | 每页返回的数据条数,默认值为10,最大值为100 |
调用考勤记录接口
要调用钉钉的考勤记录接口,首先需要获取钉钉的access_token,可以使用HTTP请求的方式发送请求到钉钉的服务器,以下是一个使用Python调用getAttendanceRecords接口的示例:
import requestsimport jsonfrom datetime import datetime, timedelta替换为你的钉钉应用的AppKey和AppSecretapp_key = "your_app_key"app_secret = "your_app_secret"替换为你的钉钉应用的AgentId和AgentSecretagent_id = "your_agent_id"agent_secret = "your_agent_secret"替换为你要查询的员工ID和查询时间范围employee_id = "your_employee_id"start_time = "20220101 00:00:00"end_time = "20220131 23:59:59"work_type = Nonecheckin_type = Noneoffset = Nonelimit = None根据AccessToken过期时间计算新的AccessTokendef get_access_token(): url = f"https://oapi.dingtalk.com/gettoken?appkey={app_key}&appsecret={app_secret}" response = requests.get(url) data = json.loads(response.text) return data["access_token"]根据员工ID和查询时间范围生成请求参数def generate_request_params(employee_id, start_time, end_time, work_type, checkin_type, offset, limit): params = { "start_time": start_time, "end_time": end_time, "employee_id": employee_id, "work_type": work_type, "checkin_type": checkin_type, "offset": offset, "limit": limit, } return params调用考勤记录接口并解析返回结果def get_attendance_records(employee_id, start_time, end_time, work_type, checkin_type, offset, limit): access_token = get_access_token() params = generate_request_params(employee_id, start_time, end_time, work_type, checkin_type, offset, limit) url = f"https://oapi.dingtalk.com/attendance/listRecord?access_token={access_token}" + urllib.parse.urlencode(params) response = requests.get(url) data = json.loads(response.text) return data["records"] if data["errcode"] == 0 else None注意事项
在使用钉钉考勤记录接口时,需要注意以下几点:
1、确保已经正确配置了钉钉应用的AppKey、AppSecret、AgentId和AgentSecret,这些信息可以在钉钉管理后台的应用设置中查看和修改。
2、确保请求的时间范围符合要求,查询开始时间和结束时间不能早于2017年1月1日,如果需要查询更早的数据,需要联系钉钉官方进行申请。

QQ客服