Python3.7配合Django2.0来调用钉钉(dingding)在线api实时监测员工考勤打卡情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3.7配合Django2.0来调用钉钉(dingding)在线api实时监测员工考勤打卡情况相关的知识,希望对你有一定的参考价值。
参考技术A 新冠疫情期间,大多数公司为了避免交叉感染都或多或少的采用了远程办公的方式,这显然是一个明智的选择,基本上钉钉(dingding)作为一个远程办公平台来用的话,虽然差强人意,但是奈何市面上没有啥更好的选择,矬子里拔将军,也还是可以凑合用的,不过远程办公有个问题,就是每天需要检查员工的考勤,居家办公虽然灵活,但是大家究竟有没有办公,则是另外一回事,钉钉提供的解决方案就是考勤在线打卡功能,但是检查出勤钉钉在移动端就有点费劲,需要在钉钉app里点击至少5次,还不能实时刷新,pc端的钉钉oa系统做的更烂,还不如移动端来得方便,另外如果你在一家上千人的企业里,这家企业有大大小小几十个部门,你又非常倒霉的担任这家公司的人事主管,每天按部门来出员工考勤报表就不是一件容易事了,所以利用钉钉开放的接口,使用Django自己打造一套实时监控员工考勤的web平台是我们本次的目的。项目背景是一家普通科技公司,大概有五个部门,每个部门100人左右
首先进入钉钉开放平台 :open-dev.dingtalk.com
在企业内部开发中,选择小程序,新建一个小程序应用,这里其实也还有别的选择,比如h5微应用,主要是小程序兼容性更好一点。
填写应用的名称、简介、Logo等基本信息这些按下不表,按照要求填写即可,也不必非得填写真实信息,这里有个坑就是一定不要忘了配置安全域名或者ip,安全域名是当我们的检测平台上线的时候部署的域名,应用可以跟指定的域名进行网络通信,如果不配置的话,请求钉钉接口会报403错误。
另外还有一个坑,也就是钉钉默认开放的接口仅限于基础权限接口
如果需要考勤或者签到接口的话,还得单独点击申请,这就有点让人看不懂了,那么多接口,全都得靠用鼠标点击开通,不开通就用不了,这个用户体验真是让人非常酸爽,产品设计成这样,钉钉的pm难辞其咎。
OK,前置准备工作就已经就绪了,现在我们只要根据官方文档来写接口就可以了,选择服务端api文档: https://ding-doc.dingtalk.com/doc#/serverapi2/gh60vz
钉钉考勤打卡的接口说明是这样的:
这里每个接口都需要一个access_token用来鉴权,这个token是用id和秘钥通过接口交换回来的,具体在应用详情里可以获取
这里我们封装成方法
搞定了token,还需要获取您的部门下所有员工的员工id,因为考勤接口参数只能接受员工id,而非部门id
最后请求考勤接口即可
完整的后台Django后台接口
这样,就可以愉快的通过线上平台来实时监测部门员工考勤了,效果是这样的:
ubuntu 下搭建一个python3的虚拟环境(用于django配合postgresql数据库开发)
#安装python pip (在物理环境中安装)
sudo apt-get install python-pip
sudo apt-get install python3-pip
sudo pip install --upgrade pip
sudo pip3 install --upgrade pip
备注说明: python-pip 是python2版本的包管理工具 , python3-pip是python3版本的包管理工具 ,
如果你创建了一个python2的虚拟环境 ,当执行完上面的四条命令后,在虚拟环境中使用pip 就是用的python2的包管理工具
如果你创建了一个python3的虚拟环境 ,当执行完上面的四条命令后,在虚拟环境中使用pip 就是用的python3的包管理工具
而且在不同的虚拟环境中还必须要用相对应的包管理工具(本人在此被坑了好久 )
#安装redis
wget http://download.redis.io/releases/redis-3.2.0.tar.gz //这个网址下载redis的安装包
tar xzf redis-3.2.0.tar.gz //下载后放到随便一个目录解压
cd redis-3.2.0 //进入redis-3.2.0目录
make //执行make
sudo make install // 超级用户权限执行 make install
cd utils // 进入 utils
echo -e "\n" | sudo ./install_server.sh //执行此行命令 (到处安装完毕)
cd ~ //回到家目录
#安装postgresql
sudo apt-get install postgresql
sudo apt-get install libpq-dev
sudo apt-get install libjpeg8-dev (这个不装的话会导致在虚拟环境中安装Pillow==3.2.0失败)
#创建环境 (创建一个python3的虚拟环境)
mkvirtualenv -p /usr/bin/python3 fresh #自行改名
一下都是在虚拟环境中安装:(这都是虚拟环境中所需开发项目的配置 各版本可以根据需要更换)
pip install Django==1.7.4
pip install psycopg2==2.6.1 //这个是用来配置django用postgresql数据库的 就是一个postgresql 驱动 没有它 django无法使用postgresql数据库
pip install Django==1.7.4
pip install psycopg2==2.6.1 //这个是用来配置django用postgresql数据库的 就是一个postgresql 驱动 没有它 django无法使用postgresql数据库
pip install jsonfield==1.0.3
pip install Pillow==3.2.0
pip install django-redis-sessions==0.5.0
pip install django-haystack==2.4.1
pip install celery==3.1.23
pip install uwsgi
pip install Pillow==3.2.0
pip install django-redis-sessions==0.5.0
pip install django-haystack==2.4.1
pip install celery==3.1.23
pip install uwsgi
以上是关于Python3.7配合Django2.0来调用钉钉(dingding)在线api实时监测员工考勤打卡情况的主要内容,如果未能解决你的问题,请参考以下文章