>  기사  >  백엔드 개발  >  DingTalk 인터페이스 및 PHP 체크인 애플리케이션 개발 가이드

DingTalk 인터페이스 및 PHP 체크인 애플리케이션 개발 가이드

PHPz
PHPz원래의
2023-07-05 12:41:221236검색

DingTalk 인터페이스 및 PHP 출근 애플리케이션 개발 가이드

DingTalk가 기업 사무실 및 관리의 주요 도구로 인기를 끌면서 많은 회사에서 DingTalk를 사용하여 직원 출근 기록을 완성하기를 희망하고 있습니다. 기업의 요구 사항을 충족하기 위해 DingTalk에서 제공하는 인터페이스를 사용하여 자체 출근 애플리케이션을 개발할 수 있습니다. 이 기사에서는 PHP 언어를 사용하여 간단한 DingTalk 체크인 애플리케이션을 개발하는 방법을 소개하고 관련 코드 예제를 제공합니다.

1. 준비
시작하기 전에 다음 자료를 준비해야 합니다.

  1. DingTalk 개발자 계정: DingTalk 개발자 플랫폼에 계정을 등록하고 새 애플리케이션을 만듭니다. 애플리케이션의 AppKey 및 AppSecret을 가져옵니다. 이 두 매개변수는 후속 인터페이스 호출에 사용됩니다.
  2. PHP 환경: 서버에 PHP 환경이 구성되어 있고 관련 PHP 코드를 정상적으로 실행할 수 있는지 확인하세요.

2. 인터페이스 인증
DingTalk의 인터페이스를 호출하려면 먼저 인증을 받고 액세스 토큰을 얻어야 합니다. 다음은 HTTP 요청을 통해 액세스 토큰을 얻기 위한 간단한 PHP 함수입니다.

function getAccessToken($appKey, $appSecret) {
    $url = "https://oapi.dingtalk.com/gettoken?appkey={$appKey}&appsecret={$appSecret}";
    $result = json_decode(file_get_contents($url), true);
    return $result['access_token'];
}

이 함수에서는 HTTP GET 요청을 통해 DingTalk의 토큰 획득 인터페이스에 요청을 보내고 매개변수에는 appKey 및 appSecret이 포함됩니다. 인터페이스는 JSON 형식으로 결과를 반환하며, 우리는 access_token 필드를 구문 분석하고 반환합니다.

3. 사용자 정보 얻기
출근 작업을 수행하기 전에 먼저 출근해야 할 직원의 사용자 ID를 얻어야 합니다. 다음은 지정된 직원의 사용자 ID를 가져오는 함수의 예입니다.

function getUserId($accessToken, $code) {
    $url = "https://oapi.dingtalk.com/user/getuserinfo?access_token={$accessToken}&code={$code}";
    $result = json_decode(file_get_contents($url), true);
    return $result['userid'];
}

이 함수에서는 HTTP GET 요청을 통해 DingTalk의 사용자 정보 획득 인터페이스에 요청을 보냅니다. 매개변수에는 액세스 토큰과 직원의 임시 권한이 포함됩니다. 코드(이 코드는 직원이 승인 링크를 클릭한 후에 얻을 수 있습니다). 인터페이스는 JSON 형식으로 결과를 반환하며, 사용자 ID 필드를 구문 분석하고 반환합니다.

4. 펀치인 작업
사용자 ID를 획득한 후 출근 인터페이스를 호출하여 직원 출근 기능을 구현할 수 있습니다. 다음은 직원 출근을 구현하는 샘플 함수입니다.

function clockIn($accessToken, $userId, $recordTime, $type) {
    $url = "https://oapi.dingtalk.com/attendance/list?access_token={$accessToken}";
    $data = [
        'userIds' => [$userId],
        'checkDateFrom' => $recordTime,
        'checkDateTo' => $recordTime,
        'isI18n' => 'false',
        'isIncludeLeave' => 'false',
        'isIncludeHoliday' => 'false',
        'isIncludeRecall' => 'false',
        'isIncludeMiss' => 'false',
        'isIncludeNotSignedOff' => 'true',
        'isIncludeNotSignedOff' => 'true'
    ];
    $result = json_decode(http_post($url, json_encode($data)), true);
    return $result;
}

이 함수에서는 HTTP POST 요청을 통해 DingTalk의 출근 인터페이스에 요청을 보냅니다. 매개변수에는 액세스 토큰, 직원의 사용자 ID, 녹음이 포함됩니다. 시간 기록 시간 및 출근 인터페이스 유형입니다. 인터페이스는 직원의 펀치인 기록 정보가 포함된 JSON 형식의 결과를 반환합니다.

위의 예에는 HTTP POST 요청을 보내는 데 사용되는 http_post 함수가 포함되어 있습니다. 다음은 http_post 함수의 간단한 구현 예입니다.

function http_post($url, $data) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}

5. 통합 예
이제 위의 기능을 통합하여 완전한 DingTalk 펀치인 응용 프로그램 예를 구현해 보겠습니다. 다음은 DingTalk 콜백 요청을 처리하는 데 사용되는 간단한 PHP 스크립트입니다.

<?php

$appKey = "your_app_key";
$appSecret = "your_app_secret";
$code = $_GET['code'];

$accessToken = getAccessToken($appKey, $appSecret);
$userId = getUserId($accessToken, $code);
$recordTime = date("Y-m-d", strtotime("-1 days"));
$result = clockIn($accessToken, $userId, $recordTime, "OnDuty");

var_dump($result);

위 예제 코드에서는 먼저 콜백 요청에서 인증 코드 코드를 얻은 후 인증 코드를 통해 사용자 ID를 얻습니다. 그런 다음, 현재 시간보다 하루 전 날짜를 녹음 시간으로 삼고 펀치인 함수를 호출하여 해당 직원의 펀치인 기록 정보를 가져옵니다. 마지막으로 var_dump 함수를 통해 펀치인 기록 정보의 결과를 출력한다.

6. 요약
이 글에서는 PHP 언어를 사용하여 간단한 DingTalk 체크인 애플리케이션을 개발하는 방법을 소개합니다. DingTalk에서 제공하는 인터페이스를 호출하여 직원 펀치인 기록을 획득하고 처리할 수 있습니다. DingTalk가 지속적으로 개발 및 업그레이드됨에 따라 이 문서의 샘플 코드를 기반으로 더욱 확장하고 최적화하여 보다 복잡한 비즈니스 요구 사항을 충족할 수 있습니다. 이 글이 여러분의 DingTalk 개발과 어플리케이션 개발에 도움이 되기를 바랍니다!

위 내용은 DingTalk 인터페이스 및 PHP 체크인 애플리케이션 개발 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.