Get started quickly: How to interface with the DingTalk interface in PHP to achieve attendance management
DingTalk is an enterprise-level instant messaging and attendance management tool. It has powerful interface capabilities and can be integrated with the enterprise’s attendance system. To integrate. In this article, I will introduce to you how to connect the DingTalk interface in PHP to quickly implement the attendance management function.
First, we need to create an application on the DingTalk open platform and obtain the AppKey and AppSecret of the application. The following is a piece of PHP code used to obtain DingTalk AccessToken:
<?php function getAccessToken($appKey, $appSecret) { $url = "https://oapi.dingtalk.com/gettoken?appkey=".$appKey."&appsecret=".$appSecret; $response = file_get_contents($url); $result = json_decode($response, true); return $result['access_token']; } $appKey = "your_app_key"; $appSecret = "your_app_secret"; $accessToken = getAccessToken($appKey, $appSecret); echo "Access Token: ".$accessToken; ?>
In the above code, we obtain the AccessToken by calling DingTalk's gettoken interface and passing the appKey and appSecret. This AccessToken will be used for subsequent interface calls.
Next, we can write code to implement attendance-related functions, such as obtaining the attendance group list, obtaining punch-in data, etc. The following is a sample code to obtain the information of all attendance groups:
<?php function getAttendanceGroups($accessToken) { $url = "https://oapi.dingtalk.com/topapi/attendance/group/list?access_token=".$accessToken; $response = file_get_contents($url); $result = json_decode($response, true); return $result['result']; } $attendanceGroups = getAttendanceGroups($accessToken); foreach ($attendanceGroups as $group) { echo "考勤组名称:".$group['name']."<br>"; echo "考勤组ID:".$group['id']."<br>"; // 其他考勤组信息的处理 } ?>
By calling the attendance/group/list interface of DingTalk, we can obtain the relevant information of the attendance group. In the above code, we print out the information of all attendance groups, and you can perform further processing according to actual needs.
In addition to obtaining the information of the attendance group, we can also implement more attendance management functions by calling other interfaces. The following is sample code for some commonly used interfaces:
<?php function getAttendanceData($accessToken, $userId, $fromDate, $toDate) { $url = "https://oapi.dingtalk.com/attendance/list?access_token=".$accessToken; $data = array( "userid" => $userId, "checkDateFrom" => $fromDate, "checkDateTo" => $toDate ); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type:application/json', 'content' => json_encode($data) ) ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); $result = json_decode($response, true); return $result['recordresult']; } $userId = "your_user_id"; $fromDate = "2022-01-01"; $toDate = "2022-01-31"; $attendanceData = getAttendanceData($accessToken, $userId, $fromDate, $toDate); foreach ($attendanceData as $data) { echo "打卡时间:".$data['checkTime']."<br>"; echo "打卡地点:".$data['location']['detail']."<br>"; // 其他打卡数据的处理 } ?>
<?php function getAttendanceRule($accessToken, $groupId) { $url = "https://oapi.dingtalk.com/attendance/group/query?access_token=".$accessToken; $data = array( "op_user_id" => $groupId ); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type:application/json', 'content' => json_encode($data) ) ); $context = stream_context_create($options); $response = file_get_contents($url, false, $context); $result = json_decode($response, true); return $result['result']; } $groupId = "your_group_id"; $attendanceRule = getAttendanceRule($accessToken, $groupId); echo "迟到早退时间:".$attendanceRule['timeCheck']['workTime']['limitCheckMinutes']."分钟<br>"; echo "迟到早退次数:".$attendanceRule['timeCheck']['workTime']['limitCheckCounts']."次<br>"; // 其他打卡规则的处理 ?>
By calling DingTalk’s attendance/list and attendance/group/query interfaces, we can obtain the employee’s clock-in data and the clock-in rules of the attendance group. In the above code, we print out some key attendance information, and you can perform further processing according to actual needs.
Through the above code examples, we can quickly get started with docking the DingTalk interface in PHP to realize the function of attendance management. Of course, DingTalk’s interface functions are very rich. This article only introduces how to use some common interfaces. You can further learn and develop according to the official documents. I wish you success in your development of DingTalk!
The above is the detailed content of Get Started Quickly: How to Interface with DingTalk Interface in PHP to Implement Attendance Management. For more information, please follow other related articles on the PHP Chinese website!