钉钉获取过去公司或者企业的所有员工的考勤记录接口?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要获取过去公司或企业所有员工的考勤记录,可以通过钉钉开放平台提供的相关API接口实现。以下是详细的步骤和配置说明:
在调用钉钉考勤相关的API之前,需要确保应用已具备以下权限: - 通讯录个人信息读权限:用于获取员工的基本信息。 - 考勤数据读取权限:用于获取员工的考勤记录。
具体权限配置如下: 1. 登录钉钉开放平台,进入“应用开发” > “企业内部应用”。 2. 选择目标应用,进入“权限管理”页面。 3. 设置权限范围为“全部员工”,并开通以下权限点: - Contact.User.Read
(通讯录个人信息读权限) - qyapi_base
(调用企业API基础权限)
调用钉钉API前,需要先获取企业的access_token
,这是调用所有企业级API的必要凭证。
https://oapi.dingtalk.com/gettoken
GET
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
appkey | String | 是 | 应用的AppKey |
appsecret | String | 是 | 应用的AppSecret |
{
"errcode": 0,
"errmsg": "ok",
"access_token": "your_access_token",
"expires_in": 7200
}
钉钉提供了专门的考勤记录查询接口,可以获取指定时间段内所有员工的考勤数据。
https://oapi.dingtalk.com/attendance/list
POST
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
access_token | String | 是 | 上一步获取的access_token |
workDateFrom | String | 是 | 查询起始日期,格式为yyyy-MM-dd HH:mm:ss |
workDateTo | String | 是 | 查询结束日期,格式为yyyy-MM-dd HH:mm:ss |
userIdList | List | 否 | 员工ID列表,若为空则查询所有员工 |
offset | Number | 是 | 分页偏移量,从0开始 |
limit | Number | 是 | 每页记录数,最大值为50 |
{
"workDateFrom": "2023-01-01 00:00:00",
"workDateTo": "2023-01-31 23:59:59",
"offset": 0,
"limit": 50
}
{
"errcode": 0,
"errmsg": "ok",
"recordresult": [
{
"userId": "zhangsan",
"checkType": "OnDuty",
"checkTime": "2023-01-01 08:30:00",
"locationResult": "Normal",
"baseCheckTime": "2023-01-01 09:00:00"
},
{
"userId": "lisi",
"checkType": "OffDuty",
"checkTime": "2023-01-01 18:00:00",
"locationResult": "Normal",
"baseCheckTime": "2023-01-01 18:00:00"
}
]
}
offset
和limit
参数进行分页查询,确保获取完整的考勤记录。以下是一个基于Python的示例代码,展示如何调用上述接口获取考勤记录:
import requests
# 获取AccessToken
def get_access_token(appkey, appsecret):
url = "https://oapi.dingtalk.com/gettoken"
params = {"appkey": appkey, "appsecret": appsecret}
response = requests.get(url, params=params)
return response.json().get("access_token")
# 查询考勤记录
def get_attendance_records(access_token, start_date, end_date):
url = "https://oapi.dingtalk.com/attendance/list"
headers = {"Content-Type": "application/json"}
data = {
"workDateFrom": start_date,
"workDateTo": end_date,
"offset": 0,
"limit": 50
}
response = requests.post(url, headers=headers, json=data, params={"access_token": access_token})
return response.json()
# 主函数
if __name__ == "__main__":
appkey = "your_appkey"
appsecret = "your_appsecret"
start_date = "2023-01-01 00:00:00"
end_date = "2023-01-31 23:59:59"
access_token = get_access_token(appkey, appsecret)
records = get_attendance_records(access_token, start_date, end_date)
print(records)
通过以上步骤,您可以成功获取公司或企业所有员工的考勤记录。请根据实际需求调整时间范围和分页参数,以确保数据完整性和准确性。