钉钉开发文档

获取打卡详情

更新时间: 2019-6-26

该接口用于返回企业内员工的实际打卡记录。比如,企业给一个员工设定的排班是上午9点和下午6点各打一次卡,但是员工在这期间打了多次,该接口会把所有的打卡记录都返回。
如果只要获取打卡结果数据,不需要详情数据,可使用获取打卡结果接口。

请求方式:POST(HTTPS)
请求地址https://oapi.dingtalk.com/attendance/listRecord?access_token=ACCESS_TOKEN
请求包结构体:

{
    "userIds": ["001","002"],
    "checkDateFrom": "yyyy-MM-dd hh:mm:ss",
    "checkDateTo": "yyyy-MM-dd hh:mm:ss",
    "isI18n":"false"
}

参数说明:

参数 参数类型 必须 说明
access_token String 调用接口凭证
userIds List 企业内的员工id列表,最多不能超过50个
checkDateFrom String 查询考勤打卡记录的起始工作日。格式为“yyyy-MM-dd hh:mm:ss”。
checkDateTo String 查询考勤打卡记录的结束工作日。格式为“yyyy-MM-dd hh:mm:ss”。注意,起始与结束工作日最多相隔7天
isI18n String 取值为true和false,表示是否为海外企业使用,默认为false。其中,true:海外平台使用,false:国内平台使用

SDK请求示例(JAVA)

DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/attendance/listRecord");
OapiAttendanceListRecordRequest request = new OapiAttendanceListRecordRequest();
request.setCheckDateFrom("2018-05-01 00:00:00");
request.setCheckDateTo("2018-05-05 00:00:00");
request.setUserIds(Arrays.asList("123"));
OapiAttendanceListRecordResponse execute = client.execute(request,accessToken);

返回结果:

{
  "errmsg": "ok",
  "recordresult": [
    {
      "isLegal": "N",
      "baseCheckTime": 1492568460000,
      "id": 933202551,
      "userAddress": "北京市朝阳区崔各庄镇阿里中心.望京A座阿里巴巴绿地中心",
      "userId": "manager7078",
      "checkType": "OnDuty",
      "timeResult": "Normal",
      "deviceId": "cb7ace07d52fe9be14f4d8bec5e1ba79",
      "corpId": "ding7536bfee6fb1fa5a35c2f4657eb6378f",
      "sourceType": "USER",
      "workDate": 1492531200000,
      "planCheckTime": 1492568497000,
      "locationMethod": "MAP",
      "locationResult": "Outside",
      "userLongitude": 116.486888,
      "planId": 4550269081,
      "groupId": 121325603,
      "userAccuracy": 65,
      "userCheckTime": 1492568497000,
      "userLatitude": 39.999946,
      "procInstId": "cb992267-9b70"
    },
    {
      "isLegal": "N",
      "baseCheckTime": 1492568460000,
      "id": 991197412,
      "userAddress": "北京市朝阳区崔各庄镇阿里中心.望京A座阿里巴巴绿地中心",
      "userId": "manager7078",
      "checkType": "OnDuty",
      "timeResult": "Normal",
      "deviceId": "cb7ace07d52fe9be14f4d8bec5e1ba79",
      "corpId": "ding7536bfee6fb1fa5a35c2f4657eb6378f",
      "sourceType": "USER",
      "workDate": 1492531200000,
      "planCheckTime": 1492568497000,
      "locationMethod": "MAP",
      "locationResult": "Outside",
      "userLongitude": 116.486888,
      "planId": 4556390053,
      "groupId": 121325603,
      "userAccuracy": 65,
      "userCheckTime": 1492568497000,
      "userLatitude": 39.999946,
      "procInstId": "cb992267-9b70"
    }
  ],
  "errcode": 0
}
参数 说明
errcode 返回码
errmsg 对返回码的文本描述内容
id 唯一标识ID
groupId 考勤组ID
planId 排班ID
workDate 工作日
corpId 企业ID
userId 用户ID
checkType 考勤类型,
OnDuty:上班
OffDuty:下班
sourceType 数据来源,
ATM:考勤机;
BEACON:IBeacon;
DING_ATM:钉钉考勤机;
USER:用户打卡;
BOSS:老板改签;
APPROVE:审批系统;
SYSTEM:考勤系统;
AUTO_CHECK:自动打卡
timeResult 时间结果,
Normal:正常;
Early:早退;
Late:迟到;
SeriousLate:严重迟到;
Absenteeism:旷工迟到;
NotSigned:未打卡
locationResult 位置结果,
Normal:范围内
Outside:范围外,外勤打卡时为这个值
approveId 关联的审批id,当该字段非空时,表示打卡记录与请假、加班等审批有关
procInstId 关联的审批实例id,当该字段非空时,表示打卡记录与请假、加班等审批有关。可以与获取单个审批数据配合使用
baseCheckTime 计算迟到和早退,基准时间;也可作为排班打卡时间
userCheckTime 实际打卡时间
classId 考勤班次id,没有的话表示该次打卡不在排班内
isLegal 是否合法,当timeResult和locationResult都为Normal时,该值为Y;否则为N
locationMethod 定位方法
deviceId 设备id
userAddress 用户打卡地址
userLongitude 用户打卡经度
userLatitude 用户打卡纬度
userAccuracy 用户打卡定位精度
userSsid 用户打卡wifi SSID
userMacAddr 用户打卡wifi Mac地址
planCheckTime 排班打卡时间
baseAddress 基准地址
baseLongitude 基准经度
baseLatitude 基准纬度
baseAccuracy 基准定位精度
baseSsid 基准wifi ssid
baseMacAddr 基准 Mac 地址
outsideRemark 打卡备注
以上内容是否对您有帮助:
在文档使用中是否遇到以下问题(多选):
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示例
  • 太简单/步骤待完善
手机号
更多建议
提交成功,感谢您的反馈!