Maison > Article > développement back-end > Solution d'amarrage avec l'interface DingTalk pour implémenter la présence et le pointage
Une solution pour réaliser la présence et le pointage en se connectant à l'interface DingTalk
Dans les entreprises modernes, la présence et le pointage sont un élément très important. Ils peuvent garantir que les employés arrivent au travail à l'heure et fournissent des données pertinentes pour l'analyse et les statistiques par le service des ressources humaines. . En tant que logiciel de bureau intelligent, DingTalk offre une multitude de fonctions d'enregistrement. Cet article explique comment mettre en œuvre la solution de présence et de pointage en s'arrimant à l'interface DingTalk.
Tout d'abord, nous devons postuler pour une application d'entreprise sur la plateforme ouverte DingTalk et obtenir l'AppKey et l'AppSecret correspondants. Ces informations d'identification seront utilisées lors des authentifications ultérieures.
Ensuite, nous devons écrire du code pour communiquer avec l'interface DingTalk. Voici un exemple simple qui utilise le langage Python pour implémenter la fonction d'amarrage avec l'interface 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)
Dans le code ci-dessus, nous avons défini plusieurs fonctions pour obtenir des horodatages et générer des signatures, et avons écrit une fonction d'enregistrementdingtalk_clock_in
. Lorsque vous appelez cette fonction, vous devez transmettre l'ID utilisateur DingTalk, l'AppKey et l'AppSecret de l'employé. Cette fonction enverra une requête à l'interface d'enregistrement de DingTalk et renverra le résultat de la réponse.
Il convient de noter que l'exemple ci-dessus n'est que la demande d'enregistrement la plus basique. Dans le développement réel, il peut être nécessaire de gérer les exceptions dans la demande et d'effectuer le traitement correspondant en fonction des résultats renvoyés.
La solution de présence et de pointage mise en œuvre par l'amarrage avec l'interface DingTalk peut non seulement améliorer l'efficacité de la gestion des présences en entreprise, mais également réduire les erreurs et la pénibilité des opérations manuelles. Dans le même temps, DingTalk fournit également de nombreuses autres interfaces qui peuvent être utilisées pour interroger les enregistrements de pointage, collecter des statistiques de fréquentation, etc., et peuvent être étendues en fonction des besoins réels.
En résumé, la solution permettant de réaliser les présences et les pointages via l'accueil avec l'interface DingTalk peut non seulement enregistrer facilement la présence des employés, mais également améliorer l'efficacité du travail et fournir un support de données plus raffiné pour la gestion de l'entreprise.
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!