python实现发送钉钉消息

需求:企业部门本地部署的缺陷管理工具,企业内部使用钉钉进行工作交流,老板想让每天汇报项目的测试情况;


设计思路:

1、创建钉钉群机器人,每天发送项目测试信息(缺陷数量、关闭数量、修复数量、项目名称、新增缺陷数量、新增缺陷负责人);

2、使用python读取mysql数据库的表 构造成钉钉的消息内容

实现方式:python3


一、安装python开发环境以及相关依赖库

安装python3开发环境可以百度;安装好后按下windowds+R,打开cmd,使用 pip install命令安装python库(需要库如下:pymysql,requests, json,nnlog)

二、创建本地文件夹DingMsg,并在文件夹 创建mysql.py和DingMsg.py

三、编写读取mysql的代码

# coding: utf-8
#!/usr/bin/python
import requests, json
from pymysql import connect
import nnloglog = nnlog.Logger('DingMsg.log',level='debug',backCount=5,when='D')
class Op_mysql:def __int__(self):print('aaaa')
#用于获取返回结果为单个的@classmethoddef con_mysql(self,sql):conn = connect(host='',port=,user='',password='',db='',charset='utf8')cursor=conn.cursor()
#根据传入sql语句执行sql并将返回结果存入resultcursor.execute(sql)results = cursor.fetchone()for result in results:passlog.info(result)conn.close()return result
#用于获取返回结果为多个的def con_mysql_list(self, list):conn = connect(host='',port=,user='',password='',db='',charset='utf8')cursor = conn.cursor()cursor.execute(list)
#根据传入sql语句执行sql并将返回结果存入listnamelistname=[]resultsList = cursor.fetchall()for r_List in resultsList:listname.append(r_List)log.info(listname)return listname@classmethoddef getTodayNewbugs(self):# 获取今日新增缺陷数o = Op_mysql()news=o.con_mysql(sql = "SELECT COUNT(*) FROM  WHERE DATEDIFF(,NOW())=0")return news@classmethoddef getAllbugs(self):# 获取总缺陷数o=Op_mysql()all_bugs=o.con_mysql(sql="")return all_bugs@classmethoddef getProjectname(self):#获取项目名称o=Op_mysql()projectname = o.con_mysql_list(sql="")return projectname@classmethod# 获取今天新增bug的负责人def getassigned(self):o = Op_mysql()assigned = o.con_mysql_list(sql="")return assigned@classmethoddef getWaitingBugs(self):o = Op_mysql()WaitingBugs=o.con_mysql(sql="")return WaitingBugs@classmethod#获取今日关闭的缺陷状态def getClosebugs(self):o = Op_mysql()CloseBugs = o.con_mysql(sql="")return CloseBugs@classmethod#今日修复缺陷数def getFixbugs(self):o = Op_mysql()fixbugs = o.con_mysql(sql="")return fixbugsif __name__ == "__main__":op_mysql=Op_mysqlop_mysql.getProjectname()op_mysql.getAllbugs()op_mysql.getWaitingBugs()op_mysql.getClosebugs()op_mysql.getassigned()

 四、编写DingMsg.py的代码

# coding: utf-8
#!/usr/bin/python
import requests, json
from pymysql import connect
import mysql
from mysql import Op_mysql
import nnloglog = nnlog.Logger('DingMsg.log',level='info',backCount=5,when='D')
# 发送钉钉消息
def send_dingtalk_message(url,content,mobile_list):headers = {'Content-Type': 'application/json'}data = {"msgtype": "text","text": {"content":content},"at": {# 要@的人"atMobiles": mobile_list,# 是否@所有人"isAtAll": False}}r = requests.post(url, headers=headers, data=json.dumps(data))log.info(r.text)return r.textif __name__ == "__main__":# 获取dingtalk token urlaccess_token = ''op_mysql = Op_mysql# 获取总缺陷数all_bugs = op_mysql.getAllbugs()# 获取今日提交的缺陷数new_bugs = op_mysql.getTodayNewbugs()# 获取项目名称projectname=op_mysql.getProjectname()namelist=[]for name in projectname:for n in name:namelist.append(n)if len(namelist)<=0:namelist.append("中台")log.info(namelist)# 获取待解决缺陷数waitingbugs = op_mysql.getWaitingBugs()#今日修复缺陷数fixbugs=op_mysql.getFixbugs()#今日关闭缺陷数closebugs=op_mysql.getClosebugs()#获取手机号列表phonenumber_list = op_mysql.getassigned()# 钉钉消息内容,注意{测试日报}是自定义的关键字,需要在钉钉机器人设置中添加,这样才能接收到消息content = F"----测试日报----\n新增缺陷项目名称:{namelist}\n今日新增缺陷数:{new_bugs}\n今日关闭缺陷数:{closebugs}\n今日修复缺陷数:{fixbugs}\n待解决缺陷数:{waitingbugs}\n总缺陷数:{all_bugs}\n"# 要@的人的手机号,可以是多个,注意:钉钉机器人设置中需要添加这些人,否则不会接收到消息mobile_list = []#从列表中取出手机号for a in phonenumber_list:for b in a:mobile_list.append(b)log.info(mobile_list)# 发送钉钉消息try:if new_bugs >= 0:send_dingtalk_message(access_token, content, mobile_list)except Exception as e:log.error(e)

四、获取钉钉机器人的url

打开钉钉群,点击【群设置】-【智能群助手】添加机器人,选择自定义的机器人,选择自定义关键词,关键词填写 测试日报  。完成后将url填写到DingMsg.py的main方法的access_token值上

  五、执行DingMsg的main方法,验证消息能否发送成功

 

六、在服务器上设置定时任务、定时执行脚本(crontal)

linux服务器定时任务编辑命令 crontab -e 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19856.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tio实现检测客户端是否在线发送钉钉群消息

文章目录 1.背景2.服务端实现2.1 服务端pom依赖和yml配置2.2 tio服务端WsMsgHandlerServer2.3 xxl-job定时任务扫描客户端是否在线然后发钉钉群告警消息 3.客户端实现3.1 客户端的pom依赖和yml配置3.2 客户端重试和心跳实现 4.客户端和服务端的demo分享 1.背景 Tio的官网 http…

接入钉钉API发送企业消息

工作中有个需求&#xff0c;是要把录入的销售机会由系统自动分配给销售&#xff0c;然后对接钉钉给销售人员发送企业消息&#xff0c;通知他进行跟单。 1. 获取Access_Token Access_Token是企业访问钉钉开放平台全局接口的唯一凭证&#xff0c;即调用接口时需携带Access_Token…

钉钉通知-调用钉钉发送企业内部消息开发

首先&#xff0c;我们要明确需求&#xff1a;自己的系统需要发送通知消息到用户&#xff0c;接收消息用户为同一企业内的人员&#xff0c;选用短信可能涉及到费用问题&#xff0c;故可以选用钉钉或者企业微信&#xff0c;在此我使用钉钉进行发送消息。 调用钉钉发送企业内部消…

Prometheus+Alertmanager+webhook-dingtalk实现钉钉告警

文章目录 一、前提准备及规划二、安装及启动2.1 Prometheus安装启动2.2 Node_export安装启动2.3 Alertmanager安装启动2.4 Webhook-dingtalk安装启动 三、配置及测试3.1 Webhook-dingtalk配置钉钉webhook地址3.2 Alertmanager配置钉钉告警3.3 Prometheus集成Alertmanager及告警…

和chatgpt学架构02-环境搭建

目录 1 安装vs code2 vs code功能介绍3 安装nodejs4 安装vue5 在vs code打开工程总结 我们在上一篇 技术选型 里咨询了chatgpt前后端的框架选择和数据库的选择。有了框架之后就需要选择合适的开发工具了&#xff0c;继续咨询一下chatgpt 我现在选型&#xff0c;前端使用vue&am…

〖编程初学者的自我修养 - 职业规划篇①〗- 大学生选择职业前的自我认知与剖析

历时18个月&#xff0c;采访 850 得到的需求。 不管你是在校大学生、研究生、还是在职的小伙伴&#xff0c;该专栏有你想要的职业规划、简历、面试的答案。说明&#xff1a;该文属于 编程初学者的自我修养 专栏&#xff0c;购买任意白宝书体系化专栏可加入易编程社区&#xff0…

谷歌Bard被曝剽窃ChatGPT?BERT一作跳槽OpenAI,揭惊天内幕

【导读】谷歌有大麻烦了&#xff01;外媒爆料说&#xff0c;Bard的训练数据部分来自ChatGPT。谷歌可能跳到黄河里也洗不清了。 3月29日&#xff0c;外媒The Information曝出了一个惊天大瓜&#xff01; 谷歌的离职员工、已跳槽OpenAI的顶级研究员竟然曝出——Bard竟是用ChatG…

人工智能AIGC最新综述:从 GAN 到 ChatGPT 的AI生成历史

一句话总结 本综述全面回顾了生成模型的历史、基本模型组件、AIGC从单模态交互和多模态交互的最新进展&#xff0c;以及模态之间的交叉应用&#xff0c;最后讨论了AIGC中存在的开放问题和未来挑战。 摘要 最近&#xff0c;ChatGPT 与 DALL-E-2 和 Codex 一起受到了社会的广泛关…

ChatGPT is not all you need,一文综述6大公司9类生成式AI模型

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 计算机视觉研究院专栏 作者&#xff1a;Edison_G 生成模型领域里&#xff0c;ChatGPT 并不是一切。 转自《机器之心》 过去两年&#xff0c;AI 领域里…

chatgpt赋能python:Python最简单的小游戏:猜数

Python 最简单的小游戏&#xff1a;猜数 作为一门高效、简单而且易于学习的编程语言&#xff0c;Python 受到了越来越多的开发者的喜爱。其中&#xff0c;编写小游戏是Python语言学习中一个很有趣的领域&#xff0c;因为它可以帮助你通过实践加深对Python语法和概念的理解。在…

chatgpt赋能Python-python3小游戏

Python3小游戏&#xff1a;为你的休闲时光增添乐趣 如果你正处于寻找一款简单好玩的小游戏&#xff0c;那么Python3小游戏将是你的不二之选。作为一名有10年Python编程经验的工程师&#xff0c;我可以说Python3小游戏是一款非常有趣、挑战性适中、易于上手的游戏。接下来&…

Github推荐--PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了)

逛Github的时候会遇到一些很好玩的项目 今天分享一个可以在PC端实现QQ防撤回功能的项目。&#xff08;安卓手机有Xposed框架&#xff09; 首先是项目地址&#xff1a; 我已经看到了&#xff0c;撤回也没用了 使用方法&#xff1a; 下载后解压&#xff0c;会出现RevokeMsgPatche…

微信防撤回功能修改

今天无意之中看到了一个帖子&#xff0c;谈到了有关微信消息撤回的。突发奇想实现一下&#xff0c;以后就不怕错过朋友的消息了。 首先介绍一下基本思路&#xff0c;由于微信采用的是CS端原理&#xff0c;所有的数据请求均通过服务器&#xff0c;客户端只是响应指令而已。 A向…

Git 如何撤回已经push到远端上的代码

首先 git log&#xff0c;目的是找到这次想要撤回的提交的上一次提交&#xff0c;并记录下红框中的commit id 回退代码&#xff0c;输入 git reset --soft commit id 回退代码, 回退完成后代码相当于刚写完的状态&#xff0c;即还没有进行add、commit、push…

微信多开防撤回工具再也不用担心好友撤回消息和登录多个账号了

微信&#xff0c;大家工作中生活中用的最多的一款应用&#xff1b;很多公司喜欢用微信来作为工作沟通的工具&#xff0c;官方原版只支持登陆一个微信&#xff0c;这对于需要在电脑上登陆多个微信账号的朋友来说肯定是极其的不方便。另外有的时候别人撤回了一些重要消息&#xf…

Python神级操作,还原已撤回的微信消息

项目环境 语言&#xff1a;Python3 编辑器&#xff1a;Pycharm 导包效果展示 以下截图显示的撤回消息类型依次是文字消息、微信自带表情、图片、语音、定位地图、名片、公众号文章、音乐、视频。有群里撤回的&#xff0c;也有个人号撤回的。 图文来源&#xff1a;http://kk…

利用Python查看微信好友撤回的消息

效果图如下&#xff1a; 不仅可以查看微信好友撤回的文字消息&#xff0c;如位置、视频、音频、图片等等都可以查看。 直接上源代码&#xff1a; # Python查看微信撤回消息 import re import os import time import itchat import platform from itchat.content import TEXT …

用Python实现微信撤回消息还原

在使用微信过程中&#xff0c;有时候我们会撤回一些发错或者不该发的一些信息&#xff0c;今天我就用一段代码实现将撤回的消息还原。。。 从此再也不怕别人撤回消息&#xff0c;自己不能看的尴尬了 import osimport reimport shutilimport timeimport itchatfrom itchat.con…

python学习 -对象把微信消息撤回后好慌,有了这个你就能看到撤回的消息了(超详解)

目录​​​​​​​ 一.简介 普通人 python技术人员 1、准备环境 2、itchat介绍 3、itchat使用 4、pycharm解释器写入代码 一.简介 当我们与朋友&#xff0c;亲人&#xff0c;爱人聊天的时候&#xff0c;我估计每个人都经理过&#xff0c;那就是微信撤回功能中所提到的…

微信能自定义“撤回消息”? QQ 笑了!

大家有没有遇到过和小伙伴聊天&#xff0c;结果输入法突然崛起&#xff0c;等到你撤回的时候尴尬到不行的窘境&#xff1f; 没办法&#xff0c;只好撤回...&#xff08;咳咳&#xff0c;只能说我的输入法已经妖魔化了 但是小伙伴的&#xff1f;号已经紧随其后&#xff0c;要是…