ホームページ >バックエンド開発 >PHPチュートリアル >DingTalk インターフェイスと PHP チェックイン アプリケーション開発ガイド

DingTalk インターフェイスと PHP チェックイン アプリケーション開発ガイド

PHPz
PHPzオリジナル
2023-07-05 12:41:221276ブラウズ

DingTalk インターフェイスと PHP 打刻アプリケーション開発ガイド

DingTalk が企業のオフィスおよび管理用の主要ツールとして人気があるため、多くの企業が DingTalk を使用して従業員の打刻記録を完了することを望んでいます。企業のニーズを満たすために、DingTalk が提供するインターフェイスを使用して、独自のクロックイン アプリケーションを開発できます。この記事では、PHP 言語を使用して単純な DingTalk チェックイン アプリケーションを開発する方法を紹介し、関連するコード例を示します。

1. 準備
開始する前に、次の資料を準備する必要があります:

  1. DingTalk 開発者アカウント: DingTalk 開発者プラットフォームにアカウントを登録し、新しいアプリケーションを 1 つ作成します。アプリケーションの AppKey と AppSecret を取得します。これら 2 つのパラメータは後続のインターフェイス呼び出しで使用されます。
  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 のユーザー情報取得インターフェイスにリクエストを送信します。パラメーターにはアクセス トークンと従業員: 一時的な認証コード code (このコードは、従業員が認証リンクをクリックした後に取得できます)。インターフェイスは JSON 形式で結果を返します。これを解析して userid フィールドを返します。

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 を通じてユーザーを取得します。次に、現在時刻の 1 日前の日付を記録時刻として使用し、パンチイン関数を呼び出して従業員のパンチイン記録情報を取得します。最後に、var_dump 関数を通じてパンチインレコード情報の結果を出力します。

6. 概要
この記事では、PHP 言語を使用して単純な DingTalk チェックイン アプリケーションを開発する方法を紹介します。 DingTalk が提供するインターフェイスを呼び出すことで、従業員のパンチイン記録を取得して処理できます。 DingTalk は開発とアップグレードを続けるため、この記事のサンプル コードに基づいてさらに拡張し、最適化して、より複雑なビジネス ニーズを満たすことができます。この記事が皆様の DingTalk 開発およびアプリケーション開発に役立つことを願っています。

以上がDingTalk インターフェイスと PHP チェックイン アプリケーション開発ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。