Maison  >  Article  >  développement back-end  >  Commencez rapidement : comment interagir avec l'interface DingTalk en PHP pour implémenter la gestion des présences

Commencez rapidement : comment interagir avec l'interface DingTalk en PHP pour implémenter la gestion des présences

PHPz
PHPzoriginal
2023-07-05 12:18:061315parcourir

Démarrez rapidement : comment s'interfacer avec l'interface DingTalk en PHP pour mettre en œuvre la gestion des présences

DingTalk est un outil de messagerie instantanée et de gestion des présences au niveau de l'entreprise qui possède de puissantes capacités d'interface et peut être intégré au système de présence de l'entreprise. Dans cet article, je vais vous présenter comment connecter l'interface DingTalk en PHP pour implémenter rapidement la fonction de gestion des présences.

Tout d'abord, nous devons créer une application sur la plateforme ouverte DingTalk et obtenir l'AppKey et l'AppSecret de l'application. Ce qui suit est un morceau de code PHP utilisé pour obtenir 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;
?>

Dans le code ci-dessus, nous obtenons l'AccessToken en appelant l'interface gettoken de DingTalk et en passant l'appKey et l'appSecret. Cet AccessToken sera utilisé pour les appels d’interface ultérieurs.

Ensuite, nous pouvons écrire du code pour implémenter des fonctions liées à la présence, telles que l'obtention de la liste des groupes de présence, l'obtention des données de pointage, etc. Voici un exemple de code pour obtenir les informations de tous les groupes de présence :

<?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>";
    // 其他考勤组信息的处理
}
?>

En appelant l'interface de présence/groupe/liste de DingTalk, nous pouvons obtenir les informations pertinentes du groupe de présence. Dans le code ci-dessus, nous imprimons les informations de tous les groupes de présence et vous pouvez effectuer un traitement ultérieur en fonction des besoins réels.

En plus d'obtenir des informations sur les groupes de présence, nous pouvons également implémenter davantage de fonctions de gestion des présences en appelant d'autres interfaces. Voici un exemple de code pour certaines interfaces couramment utilisées :

  1. Obtenir les données de pointage d'un employé :
<?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>";
    // 其他打卡数据的处理
}
?>
  1. Obtenir les règles de pointage d'un groupe de présence :
<?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>";
// 其他打卡规则的处理
?>

En appelant la liste de présence/liste de DingTalk et l'interface de présence/groupe/requête, nous pouvons obtenir les données de pointage de l'employé et les règles de pointage du groupe de présence. Dans le code ci-dessus, nous imprimons certaines informations clés sur la présence et vous pouvez effectuer un traitement ultérieur en fonction des besoins réels.

Grâce aux exemples de code ci-dessus, nous pouvons rapidement commencer à nous connecter à l'interface DingTalk en PHP pour implémenter la fonction de gestion des présences. Bien sûr, les fonctions de l'interface de DingTalk sont très riches. Cet article présente uniquement comment utiliser certaines interfaces courantes. Vous pouvez apprendre et développer davantage selon les documents officiels. Je vous souhaite du succès dans votre développement de DingTalk !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn