Penyelesaian untuk merealisasikan kehadiran dan mencatat masa dengan dok dengan antara muka DingTalk

王林
Lepaskan: 2023-07-07 20:26:01
asal
3005 orang telah melayarinya

Penyelesaian untuk merealisasikan kehadiran dan tebukan dengan berlabuh dengan antara muka DingTalk

Dalam perusahaan moden, kehadiran dan tebukan adalah bahagian yang sangat penting Ia boleh memastikan pekerja menghadiri kerja tepat pada masanya dan menyediakan data yang relevan untuk analisis dan statistik oleh jabatan sumber manusia . Sebagai perisian pejabat pintar, DingTalk menyediakan pelbagai fungsi daftar masuk. Artikel ini akan memperkenalkan cara melaksanakan penyelesaian kehadiran dan masa dengan berlabuh dengan antara muka DingTalk.

Pertama, kami perlu memohon aplikasi perusahaan pada platform terbuka DingTalk dan mendapatkan AppKey dan AppSecret yang sepadan. Bukti kelayakan ini akan digunakan dalam pengesahan seterusnya.

Seterusnya, kita perlu menulis kod untuk berkomunikasi dengan antara muka DingTalk. Berikut ialah contoh mudah yang menggunakan bahasa Python untuk melaksanakan fungsi dok dengan antara muka DingTalk:

import requests
import hashlib
import time
import base64
import hmac

def get_timestamp():
    return str(int(time.time() * 1000))

def get_signature(url, app_secret, timestamp):
    sign = app_secret.encode("utf-8") + url.encode("utf-8") + timestamp.encode("utf-8")
    hmac_code = hmac.new(app_secret.encode("utf-8"), sign, digestmod=hashlib.sha256).digest()
    signature = base64.urlsafe_b64encode(hmac_code).decode()
    return signature

def dingtalk_clock_in(user_id, app_key, app_secret):
    url = "https://oapi.dingtalk.com/attendance/v1/clock/single/add"
    timestamp = get_timestamp()
    signature = get_signature(url, app_secret, timestamp)

    headers = {
        "Content-Type": "application/json",
        "Authorization": "myAppKey={app_key},timestamp={timestamp},signature={signature}".format(
            app_key=app_key,
            timestamp=timestamp,
            signature=signature
        )
    }

    data = {
        "user_id": user_id,
        "time": timestamp,
        "category": "NORMAL",
        "latitude": "39.908823",
        "longitude": "116.397470",
        "accuracy": "41"
    }

    response = requests.post(url, headers=headers, json=data)
    return response.json()

if __name__ == "__main__":
    user_id = "123456"  # 员工的钉钉用户ID
    app_key = "your_app_key"  # 从钉钉开放平台获取到的AppKey
    app_secret = "your_app_secret"  # 从钉钉开放平台获取到的AppSecret
    result = dingtalk_clock_in(user_id, app_key, app_secret)
    print(result)
Salin selepas log masuk

Dalam kod di atas, kami menentukan beberapa fungsi untuk mendapatkan cap masa dan menjana tandatangan, dan menulis fungsi daftar masukdingtalk_clock_in. Apabila memanggil fungsi ini, anda perlu memasukkan ID pengguna DingTalk, AppKey dan AppSecret pekerja. Fungsi ini akan menghantar permintaan ke antara muka daftar masuk DingTalk dan mengembalikan hasil respons.

Perlu diingat bahawa contoh di atas hanyalah permintaan daftar masuk yang paling asas Dalam pembangunan sebenar, mungkin perlu untuk mengendalikan pengecualian dalam permintaan dan melakukan pemprosesan yang sepadan berdasarkan hasil yang dikembalikan.

Penyelesaian kehadiran dan masa yang dilaksanakan melalui dok dengan antara muka DingTalk bukan sahaja dapat meningkatkan kecekapan pengurusan kehadiran perusahaan, tetapi juga mengurangkan ralat dan kebosanan operasi manual. Pada masa yang sama, DingTalk juga menyediakan banyak antara muka lain yang boleh digunakan untuk menanyakan rekod tebukan, mengumpul statistik kehadiran, dsb., dan boleh dikembangkan mengikut keperluan sebenar.

Ringkasnya, penyelesaian untuk merealisasikan kehadiran dan tebukan melalui dok dengan antara muka DingTalk bukan sahaja dapat merekodkan kehadiran pekerja dengan mudah, tetapi juga meningkatkan kecekapan kerja dan menyediakan sokongan data yang lebih halus untuk pengurusan perusahaan.

Atas ialah kandungan terperinci Penyelesaian untuk merealisasikan kehadiran dan mencatat masa dengan dok dengan antara muka DingTalk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan