钉钉开发文档

获取打卡结果

更新时间: 2019-6-26

该接口用于返回企业内员工的实际打卡结果。比如,企业给一个员工设定的排班是上午9点和下午6点各打一次卡,即使员工在这期间打了多次,该接口也只会返回两条记录,包括上午的打卡结果和下午的打卡结果。
如果要获取打卡详细数据,比如打卡位置,可使用获取打卡详情接口。

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

{
    "workDateFrom": "yyyy-MM-dd HH:mm:ss",
    "workDateTo": "yyyy-MM-dd HH:mm:ss",
    "userIdList":["员工UserId列表"],    // 必填,与offset和limit配合使用
    "offset":0,    // 必填,第一次传0,如果还有多余数据,下次传之前的offset加上limit的值
    "limit":1,     // 必填,表示数据条数,最大不能超过50条
}

参数说明:

参数 参数类型 必须 说明
access_token String 调用接口凭证
workDateFrom String 查询考勤打卡记录的起始工作日。格式为“yyyy-MM-dd HH:mm:ss”,HH:mm:ss可以使用00:00:00,将返回此日期从0点到24点的结果
workDateTo String 查询考勤打卡记录的结束工作日。格式为“yyyy-MM-dd HH:mm:ss”,HH:mm:ss可以使用00:00:00,将返回此日期从0点到24点的结果。注意,起始与结束工作日最多相隔7天
userIdList List 员工在企业内的UserID列表,企业用来唯一标识用户的字段。最多不能超过50个
offset Long 表示获取考勤数据的起始点,第一次传0,如果还有多余数据,下次获取传的offset值为之前的offset+limit,0、1、2...依次递增
limit Long 表示获取考勤数据的条数,最大不能超过50条
isI18n String 取值为true和false,表示是否为海外企业使用,默认为false。其中,true:海外平台使用,false:国内平台使用

SDK请求示例(JAVA)

DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/attendance/list");
OapiAttendanceListRequest request = new OapiAttendanceListRequest();
request.setWorkDateFrom("2018-05-01 00:00:00");
request.setWorkDateTo("2018-05-05 00:00:00");
request.setUserIdList(Arrays.asList("1226682231742708"));
request.setOffset(0L);
request.setLimit(1L);
OapiAttendanceListResponse response = client.execute(request,accessToken);

返回结果:

{
  "errcode": 0,
  "errmsg": "ok",
  "hasMore": false,
  "recordresult": [
    {
      "baseCheckTime": 1463392800000,
      "checkType": "OffDuty",
      "corpId": "ding53a2fb0458ba9639",
      "groupId": 20451893,
      "id": 60714703,
      "locationResult": "Normal",
      "planId": 210071562,
      "recordId": 30068312,
      "timeResult": "Early",
      "userCheckTime": 1463392235000,
      "userId": "manager6699",
      "workDate": 1463328000000,
      "procInstId": "cb992267-9b70"
    },
    {
      "baseCheckTime": 1463360400000,
      "checkType": "OnDuty",
      "corpId": "ding53a2fb0458ba9639",
      "groupId": 20451893,
      "id": 60716532,
      "locationResult": "NotSigned",
      "planId": 210071561,
      "timeResult": "NotSigned",
      "userCheckTime": 1463360400000,
      "userId": "manager6699",
      "workDate": 1463328000000,
      "procInstId": "cb992267-9b70"
    }
  ]
}
参数 说明
errcode 返回码
errmsg 对返回码的文本描述内容
hasMore 分页返回参数,表示是否还有更多数据
id 唯一标识ID
groupId 考勤组ID
planId 排班ID
recordId 打卡记录ID
workDate 工作日
userId 用户ID
checkType 考勤类型
OnDuty:上班
OffDuty:下班
timeResult 时间结果
Normal:正常;
Early:早退;
Late:迟到;
SeriousLate:严重迟到;
Absenteeism:旷工迟到;
NotSigned:未打卡
locationResult 位置结果
Normal:范围内;
Outside:范围外;
NotSigned:未打卡
approveId 关联的审批id,当该字段非空时,表示打卡记录与请假、加班等审批有关
procInstId 关联的审批实例id,当该字段非空时,表示打卡记录与请假、加班等审批有关。可以与获取单个审批数据配合使用
baseCheckTime 计算迟到和早退,基准时间
userCheckTime 实际打卡时间,  用户打卡时间的毫秒数
sourceType 数据来源
ATM:考勤机;
BEACON:IBeacon;
DING_ATM:钉钉考勤机;
USER:用户打卡;
BOSS:老板改签;
APPROVE:审批系统;
SYSTEM:考勤系统;
AUTO_CHECK:自动打卡
以上内容是否对您有帮助:
在文档使用中是否遇到以下问题(多选):
  • 内容错误
  • 更新不及时
  • 链接错误
  • 缺少代码/图片示例
  • 太简单/步骤待完善
手机号
更多建议
提交成功,感谢您的反馈!