> ## 简介
简称:**_dtalk_push+pas_**
![](https://img.shields.io/badge/Development%20Language-Python-FF0000)
![GitHub stats](https://github-readme-stats.vercel.app/api?username=GIS90&theme=highcontrast&show_icons=true&hide=contribs,prs&count_private=true)
***目前,打算把这个功能集成到WEB系统中,脚本化暂停更新,有问题请联系我!***
基于Python语言研发,调用**DingTalk(钉钉)Robot OpenApi**实现钉钉机器人自动化推动绩效工资明细到钉钉用户。
目前,程序处于***v1.0.1***版本研发阶段,具体功能如下:
- Robot自动化推送DingTalk消息
- 日志记录(初次运行项目会自动创建log目录以及.log文件)
- 参数配置
- 模板配置(DingTalk User ID、消息体)
v1.1.X预研发功能:
- fix v1.0.0 bug
- 分成开发者配置文件以及客户配置文件,便于后续封装exe文件
- 优化参数配置,预加入DingTalk消息体配置
- 打包制作.exe文件或者一键式部署(具体部署方式以发布版本功能为准)
- 添加消息撤回功能
### 效果图
<img src="http://pygo2.top/images/result.jpg" width = "350" height = "450" alt="图片名称" align=center />
### 项目架构
- 开发语言:***Python3.7***
- 研发工具:Pycharm CE
程序可运行于Linux、Windows、MacOS等不同系统上,git clone之后进行修改配置,可在此基础上可进行二次开发。
### 目录说明
程序中的配置信息提取到root目录下config.yaml配置文件,将运行代码封装core核心目录中,对外只暴露程序入口,有兴趣或者想了解源码的依据目录说明进行源代码查看。
* ***core***
程序的核心运行代码:
1. **run** 程序运行的逻辑代码
1. **base_class** 单例模式
3. **config** 配置解析
4. **ding_api** 钉钉Robot openApi的封装
5. **excel_lib** Excel操作类
6. **logger** 程序日志
7. **status** Method Response json封装类
8. **utils** 通用静态方法
* log
日志存放目录,***git clone***之后,初次运行会自动创建log目录,以config.yaml配置为准,名称采用FILENAME_PREFIX + YY-mm-dd.log命名,具体配置请参考config.yaml中的LOG,不建议更改。
* package
dingtalk.zip:DingTalk openApi离线包
官方下载地址:https://developers.dingtalk.com/document/resourcedownload/download-server-sdk/title-12y-g4g-zn2?pnamespace=robots
建议使用官网的***新版服务端SDK***,除了Python SDK还有Java、C#、GO、PHP等,当前主流的开发语言SDK包都提供了。
* qtdesc
存放其他自定义项目相关描述文件。
* ***template***
存放DingTalk模板配置文件,目前程序**只支持.xls格式的模板**,文件中包含推送消息的用户以及内容,具体template配置相关请查下下个章节配置说明,模板格式如下:
| USER_ID | HYLBDH | 统计日期 | 机构名称 | 行员代号 | 行员名称 | 行员类别 | 行员岗位 | 工资项1 | 工资项2 | 工资项N | 实发绩效工资 |
| :-----------: | :-----------: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| 032511245938821831 | E01 | 20210930 | 测试部 | 100001 | mingliang.gao1 | 支行行长 | 支行行长 | 100 | 500 | -80 | 520 |
| manager2730 | E02 | 20210930 | 研发部 | 100002 | mingliang.gao2 | 支行行长 | 支行行长 | 100 | 500 | -80 | 520 |
* main.py
程序入口
* config.yaml
配置文件
* requirements.txt
程序包版本
### 配置说明
- SERVER:项目基础信息配置(*不建议更改*)
* NAME:程序名称
* VERSION:版本信息
* DEBUG:是否采用Debug模式运行,值有True与False,默认值为True开启Debug模式,处于Debug模式的程序会打印log,建议开启
* IS_TEST:程序开发调试阶段使用,获取模板数据DingTalk use id是否唯一,如果参数为False模板有重复的ID会报error,否则True则会通过,默认设置为False即可
- DEV:开发者选项配置(*不建议更改*)
* DK_INTERVAL:用户调用DingTalk发消息用户之间是否有间隔时间,默认为1.2,如果参数值>0,则会产生一个0.1~参数值之间的随机间隔,如果设置为0则无间隔
- DINGTALK:DingTalk Robot openApi服务端URL设置(***不可以更改***)
防止DingTalk官网服务端变更地址时使用,接口为ali openApi,变更的可能性极小。
* BASE_URL:DingTalk服务API根地址
* TOKEN_URL:获取access token地址,DingTalk所有的OpenApi操作均需要认证,access token是二次对接的第一步
- ROBOT:DingTalk Robot配置信息(**必须更改**)
* APPKEY:机器人AppKey
* APPSECRET:机器人AppSecret
设置钉钉后台创建的企业内部机器人相关配置,具体创建机器人操作见:http://pygo2.top/articles/32206/
- LOG:日志信息的配置(*不建议更改*)
* LOG_DIR:日志信息的存放目录,配置值为相对路径,基于项目root根目录下设置,配置好目录程序会自动进行创建
* LOG_LEVEL:打印日志级别,有5个级别,默认为debug
```
logger.debug('message')
logger.info('message')
logger.warning('message')
logger.error('message')
logger.critical('message')
```
* LOG_FORMATTER:打印日志格式,具体格式设置请参照core/logger.py文件操作说明
```
%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s - %(message)s
```
* LOG_FILENAME_PREFIX:日志文件名称的prefix
- Template:表格模板配置(*不建议更改*)
包含FILE、SHEET_INDEX、SHEET_INDEX and so on,具体说明如下:
* FILE:模板文件名称,目前只支持在template目录存放模板文件,建议文件名称为英文,**只支持.xls格式文件**
* IS_TITLE:模板文件是否包含表头,默认设置为True包含表头,并且为第一行,如果不提供表头,消息只有数字部分
* SHEET_INDEX:读取的模板文件sheet索引值,从1,2,3开始算,默认读取第一个
* COL_INDEX_DINGTALK_ID:设置DingTalk中员工导出文件中的USER_ID,系统会依据此ID对DingTalk人员进行消息推送,
根据项目实际情况以及模板进行配置,默认为第一列
* COL_INDEX_HYLB:配置模板文件DingTalk人员的行员类别列,默认为第二列,程序会匹配此参数与MESSAGE_COL配置参数,依据行员类别进行不同消息体(工资项)的内容推送
```
模板特别说明:
1、模板文件暂不支持其他目录,只允许在template目录,建议英文命名,并且只支持.xls格式文件
2、模板文件需要提供表头,并且在第一行
3、其中,USER_ID不可以为空,如果为空则对此行数据自动过滤不推送消息
DingTalk User ID获取参考:http://pygo2.top/articles/45420/
```
- MANAGE:DingTalk消息控制配置(*不建议更改*)
* TITLE:设置消息体标题,可选项设置,默认为***YYYY-MM月薪资明细***,其中YYYY-MM为当前时间的年-月
* IS_ADD_IMAGE:推送的消息体是否添加图片显示,默认为空不显示,有需要显示图片的添加图片公网URL地址
* CONTROL:控制不推送DingTalk消息的人员ID,此ID为DingTalk后台导出的User ID,格式为列表,用英文单引号/双引号括起来,多个用英文逗号分割
- MESSAGE_COL:DingTalk推送消息体配置(**必须更改**)
配置采用key: value格式,如果不进行配置删除配置值,程序会对每一个用户发送所属行数据的全部模板内容,示例:E01: [3, 4, 5, 6, 7, 8, 9, 28, 31, 26]
* key:E01代表用户的类别代号,对应模板文件中�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于Python语言研发,调用DingTalk(钉钉)Robot_OpenApi实现钉钉机器人自动化_dtalk_push_pas.zip (18个子文件)
dtalk_push_pas-main
qtdesc
测试机器人配置.txt 144B
工资项类别说明.txt 1KB
template
DingTalk_Bank_Salary.xls 24KB
main.py 2KB
config.yaml 2KB
core
utils.py 5KB
__init__.py 445B
excel_lib.py 5KB
base_class.py 1000B
run.py 7KB
status.py 998B
logger.py 4KB
ding_api.py 6KB
config.py 10KB
package
dingtalk.zip 550KB
requirements.txt 531B
.gitignore 2KB
README.md 14KB
共 18 条
- 1
资源评论
好家伙VCC
- 粉丝: 2089
- 资源: 9145
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功